Foros del Web » Programando para Internet » PHP »

No me calcula los dias entre dos fechas

Estas en el tema de No me calcula los dias entre dos fechas en el foro de PHP en Foros del Web. Saludos. Tengo el siguiente problema cuando resto dos fechas y es el siguiente cuando el rango de fechas esta en el mismo año me calcula ...
  #1 (permalink)  
Antiguo 03/11/2005, 17:21
 
Fecha de Ingreso: febrero-2005
Mensajes: 650
Antigüedad: 12 años, 9 meses
Puntos: 2
Pregunta No me calcula los dias entre dos fechas

Saludos.

Tengo el siguiente problema cuando resto dos fechas y es el siguiente cuando el rango de fechas esta en el mismo año me calcula bien el numero de dias, pero si esta 12/12/2005 y 01/12/2005 me trae 334, esta es la operación que hago:

date("z",mktime(0,0,0,$VL_MesFP,$VL_DiasFP,$VL_Ano FP)) - date("z",mktime(0,0,0,$VL_MesAnt,$VL_DiasAnt,$VL_A noAnt));
echo "Dias".$VL_DiasPost." ";

Que tengo mal???????

Agradezco la ayuda que me puedan brindar.
  #2 (permalink)  
Antiguo 03/11/2005, 18:04
Avatar de gonzalezmfrank  
Fecha de Ingreso: julio-2005
Ubicación: Maracaibo - Venezuela
Mensajes: 266
Antigüedad: 12 años, 4 meses
Puntos: 0
Yo lo hago así

Código PHP:
$date1=date("Y-m-d");
$date2=$usuario_datos['fecha_pass'];
$s1 strtotime($date1)-strtotime($date2);
$d1 intval($s1/86400); 
$d1 es la cantidad de dias entre HOY ($date1) y la registrada en un BD Mysql con formato DATE

Espero te sirva

Frank
  #3 (permalink)  
Antiguo 04/11/2005, 16:11
 
Fecha de Ingreso: febrero-2005
Mensajes: 650
Antigüedad: 12 años, 9 meses
Puntos: 2
Pregunta Dudas..

Saludos.

strtotime trae el numero de segundos entre esas dos fechas verdad??
intval siempre es preciso???

Debe ser con el formato Y-m-d???

Agradezco la ayuda y aclaraciones que me puedan brindar
  #4 (permalink)  
Antiguo 04/11/2005, 17:12
Avatar de gonzalezmfrank  
Fecha de Ingreso: julio-2005
Ubicación: Maracaibo - Venezuela
Mensajes: 266
Antigüedad: 12 años, 4 meses
Puntos: 0
Comenzando por lo último la funcion intval() te trae el valor entero de una operacion, es confiable, en cuanto a lo primero que tiene que ver por cierto con el formato, a continuacion lo que dice el manual de PHP

Es aplicado a las versiones de PHP

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

strtotime -- Procesar cualquier descripción textual de fecha/hora en Inglés convirtiéndola en una timestamp de UNIX.

Descripción

int strtotime ( string hora [, int ahora] )


La función espera que se le pase una cadena conteniendo una fecha en formato Inglés e intentará procesarla y convertirla a una timestamp (muestra de tiempo) de UNIX relativa a la timestamp proporcionada en ahora, o la hora actual si no se indica ninguna. Si falla, devolverá -1.


Dado que strtotime() obra de acuerdo con la sintaxis de fechas de GNU, puede echar un vistazo a la página del manual GNU titulada Date Input Formats (Formatos de entrada de fechas). La sintaxis descrita ahí es válida para el parátro hora.

Ejemplo 1. Ejemplos con strtotime()

echo strtotime ("now"), "\n";
echo strtotime ("10 September 2000"), "\n";
echo strtotime ("+1 day"), "\n";
echo strtotime ("+1 week"), "\n";
echo strtotime ("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime ("next Thursday"), "\n";
echo strtotime ("last Monday"), "\n";


Ejemplo 2. Comprobando si falla

$str = 'No válida';
if (($timestamp = strtotime($str)) === -1) {
echo "La cadena ($str) no es válida.";
} else {
echo "$str == ". date('l dS of F Y h:i:s A',$timestamp);
}


Nota: El rango válido de una timestamp suele ser desde Fri, 13 Dec 1901 20:45:54 GMT (Viernes, 13 de diciembre) a Tue, 19 Jan 2038 03:14:07 GMT (Martes, 19 de enero). (Estas son las fechas que corresponden a los valores mínimo y máximo de un entero con signo de 32 bits.)

Espero te aclare las dudas

Saludos

Frank
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 09:22.