entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Comparar 2 fechas en php

Necesito comparar una fecha que está almacenada en la Base de datos con un datetime.
Esta fecha, le tengo que sumar 7 días y compararla con la fecha actual. Si la fecha Actual es mayor me muestre un mensaje y sino otro mensaje.

2 Respuestas

1voto

danielreales7 Puntos4400

Ya lo logré hacer:

$fecha = $_SESSION['f_alta'];
$fecha2 = explode(" ",$fecha);
$fecha3 = $fecha2[0];
$fecha4 = strtotime("$fecha3 +1 week");
$fechaHoy = date('Y-m-d');
$fechaHoy2 = strtotime("$fechaHoy");

Y comparo así:

<?php if($fecha4 > $fechaHoy2){ ?>

Leonardo-Tadei comentado Jun 16, 2014

Ojo que esa solución funciona en PHP 5.3 o superior solamente!

danielreales7 comentado Jun 16, 2014

¿Y eso? ¿Por qué? Gracias por el comentario

Leonardo-Tadei comentado Jun 17, 2014

Porque los modificadores week, day, etc fueron agregados a strtotime() a partir de la versión 5.3... antes no existían.

http://www.php.net/manual/es/function.strtotime.php

Yo siempre uso directamente date() y mktime() por una cuestión de compatibilidad hacia atrás.

danielreales7 comentado Jun 17, 2014

Ah vale, ya me funciona todo perfectamente.

1voto

Leonardo-Tadei Puntos208320

Hola Daniel,

suponiedo que la fecha en la DB esté en formato Y-m-d podrías hacer algo como:

<?php
$fechadb = '2014-06-10',
// Pasa la fecha de la DB a epoch y le aqgrega 7 días
$tmp = explode('-',$fechadb);
$epochdb = mktime(0,0,0,$tmp[1],$tmp[2]+7,$tmp[3]);
// pasa la fecha actual a epoch
$fecha = date("Y-m-d");
$tmp = explode('-',$fecha);
$epoch = mktime(0,0,0,$tmp[1],$tmp[2],$tmp[3]);
// Compara ahora que las fechas son enteror
if( $epoch > $epochdb) {
   print('un mesaje');
} else {
   print('otro mesaje');
}

Es decir, convertís ambas fecha a epoch, lo que te permite sumar fácilmente 7 días a la fecha guardada, hacés lo mismo con la fecha actual y luego comparás.

PD: si tengo algún error de sintaxis, es porque escribí directamente acá, pero la idea es esa.

danielreales7 comentado Jun 17, 2014

Leonardo y para saber las horas de diferencia? Desde que se registra, hasta la fecha actual. Para hacer un contador que vaya disminuyendo las horas hasta finalizar.

Leonardo-Tadei comentado Jun 17, 2014

Hola Daniel,

en mi versión el contador de horas es fácil, porque la fecha en formato epoch son segundos desde 01/01/1970, así que la diferencia entre las dos fechas es una cantidad de segundos, que dividido por 60 da en minutos y dividido de nuevo por 60 da en horas.

danielreales7 comentado Jun 17, 2014

Perfecto, gracias por todo!

Por favor, accede o regístrate para responder a esta pregunta.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Actividad Reciente

¿Eres Usuario Apple?

...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta