Cómo comparar dos fechas en php [duplicado]

Resuelto Rohan Kumar asked hace 54 años • 16 respuestas

Cómo comparar dos fechas en php si las fechas están en formato '03_01_12'y '31_12_11'.

Estoy usando este código:

$date1=date('d_m_y');
$date2='31_12_11';
if(strtotime($date1) < strtotime($date2))
   echo '1 is small ='.strtotime($date1).','.$date1;
else
   echo '2 is small ='.strtotime($date2).','.$date2;

Pero no funciona..

Rohan Kumar avatar Jan 01 '70 08:01 Rohan Kumar
Aceptado

Deberá asegurarse de que sus fechas sean objetos de fecha válidos.

Prueba esto:

$date1=date('d/m/y');
$tempArr=explode('_', '31_12_11');
$date2 = date("d/m/y", mktime(0, 0, 0, $tempArr[1], $tempArr[0], $tempArr[2]));

Luego puede realizar el strtotime()método para obtener la diferencia.

dkulkarni avatar Jan 04 '2012 07:01 dkulkarni

Usando DateTime::createFromFormat :

$format = "d_m_y";
$date1  = \DateTime::createFromFormat($format, "03_01_12");
$date2  = \DateTime::createFromFormat($format, "31_12_11");

var_dump($date1 > $date2);
nevvermind avatar Jan 04 '2012 07:01 nevvermind

No respondo al problema real de los OP, sino solo al título. Dado que este es el resultado principal para "comparar fechas en php".

Bastante sencillo de usar objetos de fecha y hora ( php >= 5.3.0) y compararlos directamente

$date1 = new DateTime("2009-10-11");
$date2 = new DateTime("tomorrow"); // Can use date/string just like strtotime.
var_dump($date1 < $date2);
Mohd Abdul Mujib avatar May 29 '2018 21:05 Mohd Abdul Mujib