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 está funcionando ...
Respuestas:
Deberá asegurarse de que sus fechas sean objetos de fecha válidos.
Prueba esto:
Luego puede realizar el
strtotime()
método para obtener la diferencia.fuente
Usando DateTime :: createFromFormat :
fuente
;, :, (, ), /, ., ,, -
funcionará.La función date_diff () devuelve la diferencia entre dos objetos DateTime.
Si la primera fecha es anterior a la segunda, se devolverá un número positivo de días; de lo contrario, un número negativo de días:
la producción será "+272 días";
cambiando $ date1 = "2014-03-15"
La salida será "-93 días"
fuente
fuente
No respondiendo al problema real de los OP, sino respondiendo solo el título. Dado que este es el mejor resultado para "comparar fechas en php".
Bastante simple de usar Datetime Objects (
php >= 5.3.0
) y compararlos directamentefuente
Extendiendo la respuesta de @ nevermind, uno puede usar DateTime :: createFromFormat: like,
fuente
puedes probar algo como:
Luego puede acceder a la diferencia en días como este $ dateDiff-> d;
fuente
No sé cuál es tu problema, pero:
fuente
Prueba esto
fuente
comparar el resultado de
maketime()
para cada una de las vecesfuente
Sé que esto es tarde, pero para referencia futura, coloque el formato de fecha en un formato reconocido usando str_replace y su función funcionará. (reemplace el guión bajo con un guión)
fuente
Puede convertir para números enteros y comparar.
P.ej.:
fuente
Creo que esta es una función muy simple.
fuente
Chicos, por favor, no lo hagan tan complejo La respuesta simple abajo
Acabo de agregar dos líneas más con tu código.
fuente
Si ambas fechas están en el mismo formato, utilice un operador de comparación.
Salida: 2018-05-05 es anterior a 2019-08-19
fuente