Foros del Web » Programando para Internet » PHP »

Duda de urgencia

Estas en el tema de Duda de urgencia en el foro de PHP en Foros del Web. Tengo un sistema en el cual obtiene la fecha actual y se la resta a una de la base de datos, pero localmente en 3 ...
  #1 (permalink)  
Antiguo 12/07/2009, 14:10
 
Fecha de Ingreso: marzo-2009
Mensajes: 163
Antigüedad: 15 años, 1 mes
Puntos: 0
Duda de urgencia

Tengo un sistema en el cual obtiene la fecha actual y se la resta a una de la base de datos, pero localmente en 3 computadoras si jala a la perfeccion pero lo subo al servidor y no sirve..uso el date_diff..........tengo que configurar algo en el server? porque no me arroja ningun resultado :(
  #2 (permalink)  
Antiguo 12/07/2009, 14:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Duda de urgencia

Sin ver como es que usas esa función ni como esta conformada es dificíl saber la causa, aunque generalmente es por diferencias de configuración, como el uso de register_globals.

Saludos.
  #3 (permalink)  
Antiguo 12/07/2009, 14:47
 
Fecha de Ingreso: marzo-2009
Mensajes: 163
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Duda de urgencia

mmm pero como puede ser que localmente si funcione y en el servidor no funcione, si todo esta mas que excelente la funcion de date_diff use el codigo que me dejaron por aqui...es este...

Código PHP:
   <?php
     
    
function datediff($interval$datefrom$dateto$using_timestamps false) {
    
/*
    $interval can be:
    yyyy - Number of full years
    q - Number of full quarters
    m - Number of full months
    y - Difference between day numbers
   (eg 1st Jan 2004 is "1", the first day. 2nd Feb 2003 is "33". The datediff is "-32".)
   d - Number of full days
   w - Number of full weekdays
   ww - Number of full weeks
   h - Number of full hours
   n - Number of full minutes
   s - Number of full seconds (default)
   */
  
   
if (!$using_timestamps) {
   
$datefrom strtotime($datefrom0);
   
$dateto strtotime($dateto0);
   }
   
$difference $dateto $datefrom// Difference in seconds
  
   
switch($interval) {
  
   case 
'yyyy'// Number of full years
    
   
$years_difference floor($difference 31536000);
   if (
mktime(date("H"$datefrom), date("i"$datefrom), date("s"$datefrom), date("n"$datefrom), date("j"$datefrom), date("Y"$datefrom)+$years_difference) > $dateto) {
   
$years_difference--;
   }
   if (
mktime(date("H"$dateto), date("i"$dateto), date("s"$dateto), date("n"$dateto), date("j"$dateto), date("Y"$dateto)-($years_difference+1)) > $datefrom) {
   
$years_difference++;
   }
   
$datediff $years_difference;
   break;
    
   case 
"q"// Number of full quarters
    
   
$quarters_difference floor($difference 8035200);
   while (
mktime(date("H"$datefrom), date("i"$datefrom), date("s"$datefrom), date("n"$datefrom)+($quarters_difference*3), date("j"$dateto), date("Y"$datefrom)) < $dateto) {
   
$months_difference++;
   }
   
$quarters_difference--;
   
$datediff $quarters_difference;
   break;
    
   case 
"m"// Number of full months
    
   
$months_difference floor($difference 2678400);
   while (
mktime(date("H"$datefrom), date("i"$datefrom), date("s"$datefrom), date("n"$datefrom)+($months_difference), date("j"$dateto), date("Y"$datefrom)) < $dateto) {
   
$months_difference++;
   }
   
$months_difference--;
   
$datediff $months_difference;
   break;
    
   case 
'y'// Difference between day numbers
    
   
$datediff date("z"$dateto) - date("z"$datefrom);
   break;
    
   case 
"d"// Number of full days
    
  
$datediff floor($difference 86400);
   break;
    
   case 
"w"// Number of full weekdays
    
   
$days_difference floor($difference 86400);
   
$weeks_difference floor($days_difference 7); // Complete weeks
   
$first_day date("w"$datefrom);
   
$days_remainder floor($days_difference &#37; 7);
   
$odd_days $first_day $days_remainder// Do we have a Saturday or Sunday in the remainder?
   
if ($odd_days 7) { // Sunday
   
$days_remainder--;
   }
   if (
$odd_days 6) { // Saturday
   
$days_remainder--;
   }
   
$datediff = ($weeks_difference 5) + $days_remainder;
   break;
    
   case 
"ww"// Number of full weeks
    
   
$datediff floor($difference 604800);
   break;
    
   case 
"h"// Number of full hours
    
   
$datediff floor($difference 3600);
   break;
    
   case 
"n"// Number of full minutes
    
   
$datediff floor($difference 60);
   break;
    
  default: 
// Number of full seconds (default)
   
  
$datediff $difference;
  break;
  }
 
  return 
$datediff;
   
  }
   
  
?>
<?php
  #4 (permalink)  
Antiguo 12/07/2009, 14:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Duda de urgencia

Ok, esa es la función pero lo más importante es como la implementas.

Saludos.
  #5 (permalink)  
Antiguo 12/07/2009, 14:48
 
Fecha de Ingreso: marzo-2009
Mensajes: 163
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Duda de urgencia

Y LO PRINCIPAL DENTRO DE DONDE HAGO LAS OPERACIONES ES

$fecha_hoy = date("Y-m-d");
$fecha_calc = $datos['const_date_calc'];

print "<p style='color:red;'>NOTA: #".datediff('w', $fecha_hoy, $fecha_calc, false)." d&iacute;as h&aacute;biles para terminar escritura ( firmas delas partes ).</p>";



DONDE LA FECHA_CAL VIENE DE LA BASE DE DATOS Y LA DE HOY PUES AHI SE INDICA
  #6 (permalink)  
Antiguo 12/07/2009, 15:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Duda de urgencia

Pues no veo nada especial tanto en tu función como en el código, deberías subir un <?php phpinfo(); ?> y comparar las diferencias de configuración ya que es probable por ahí veas las diferencias.

Saludos.
  #7 (permalink)  
Antiguo 12/07/2009, 15:12
 
Fecha de Ingreso: marzo-2009
Mensajes: 163
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Duda de urgencia

las versiones son 5.2.9 en el server y 5.2.8 en la maquina local :S y ya casi lloro porque esto urge en mi trabajo y nomas nose la razon pror la cual no funcione en el server y si en ocalhost
  #8 (permalink)  
Antiguo 12/07/2009, 15:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Duda de urgencia

Si pero verifica cuantas diferencias hay al hacer el phpinfo(). Por otro lado Haz una prueba sencilla con datos que ya conozcas y ve si te da el mismo resultado tanto en local como en el servidor para que veas donde puede estar el problema.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:07.