Cómo comparar dos fechas en php [duplicado]
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..
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.
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);
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);