Comparar fechas en PHP

Comparar fechas en PHP

Se requiere que los valores de la fecha se comparen en PHP para diferentes propósitos, como calcular la fecha límite de una tarea y programar un evento. Es más fácil comparar dos fechas de un formato similar. Si se requiere comparar la fecha de diferentes formatos, los valores de la fecha serán necesarios para convertir en el mismo formato utilizando otras funciones PHP incorporadas antes de la comparación. Se han mostrado diferentes formas de comparar valores de fecha en PHP en este tutorial.

Comparar fechas de formato similar

Los valores de la fecha se almacenan como cadenas en PHP en el "yyyy-mm-dd" formato. Si este valor de fecha no se asigna en este formato, se generará la salida incorrecta. La forma de comparar dos fechas de un formato similar se ha mostrado en este tutorial.

Ejemplo 1: Compare los valores de la fecha utilizando una declaración condicional

Cree un archivo PHP con el siguiente script que leerá dos valores de fecha en el formato PHP a partir de los parámetros de URL. Luego imprima el mensaje después de comparar los valores de fecha utilizando una declaración condicional y un operador de comparación.

// verifique si los valores de la fecha se pasan en el parámetro URL o no
if (isset ($ _ get ['d1']) y isset ($ _ get ['d2']))

// Establecer el valor de la primera fecha como una cadena
$ dateVal1 = $ _get ['d1'];
// Establecer el valor de la segunda fecha como una cadena
$ dateVal2 = $ _get ['d2'];
// verifique si los valores no son vacíos o no
if ($ dateVal1 != "" y $ dateVal2 != "")

// Compare las fechas utilizando el operador de comparación
if ($ dateVal1 < $dateVal2)
echo "$ dateVal1 es inferior a $ dateVal2.";
demás
Echo "$ DateVal1 es mayor que $ DateVal2.";

demás
// Mensaje de error de impresión
Echo "uno o dos valores de fecha están vacíos.";

demás
// Mensaje de error de impresión
Echo "faltan uno o más valores de fecha.";
?>

La siguiente salida aparecerá después de ejecutar el script anterior si no se pasa ningún valor de fecha como parámetro de URL:

Después de ejecutar el script anterior, aparecerá la siguiente salida si se pasan "2022-09-21 y 2022-01-22" en el parámetro URL:

Después de ejecutar el script anterior, aparecerá la siguiente salida si 2022-09-21 y 2022-11-22 "se pasan en el parámetro de URL.

Ejemplo 2: Compare los valores de la fecha utilizando el operador ternario

Cree un archivo PHP con el siguiente script que leerá dos valores de fecha en el formato PHP a partir de los parámetros de URL. Luego imprima el mensaje después de comparar los valores de fecha utilizando el operador ternario.

// verifique si los valores de la fecha se pasan en el parámetro URL o no
if (isset ($ _ get ['d1']) y isset ($ _ get ['d2']))

// Establecer el valor de la primera fecha como una cadena
$ dateVal1 = $ _get ['d1'];
// Establecer el valor de la segunda fecha como una cadena
$ dateVal2 = $ _get ['d2'];
// verifique los valores no vacíos o no
if ($ dateVal1 != "" y $ dateVal2 != "")
// Compare los valores de fecha
echo $ dateVal1 < $dateVal2 ? "$dateVal1 is less than $dateVal2." : "$dateVal1 is greater than $dateVal2.";
demás
// Mensaje de error de impresión
Echo "uno o dos valores de fecha están vacíos.";

demás
// Mensaje de error de impresión
Echo "faltan uno o más valores de fecha.";
?>

Después de ejecutar el script anterior, aparecerá la siguiente salida si se pasan "2022-08-25 y 2022-11-22" en el parámetro URL:

Compare objetos de fecha de formatos similares o diferentes

La forma de comparar los objetos de fecha de los mismos o diferentes formatos se ha mostrado en esta parte del tutorial.

Ejemplo 3: Compare objetos de fecha de formato similar

Cree un archivo PHP con el siguiente script para crear dos objetos de fecha de formatos similares utilizando el Fecha y hora clase. A continuación, la declaración condicional se utilizó para comparar las fechas.

// Asignar el objeto de la primera fecha
$ dateVal1 = new DateTime ("21 de mayo de 2022");
// Asignar el objeto de la segunda fecha
$ dateVal2 = new DateTime ("16 de diciembre de 2022");
// Compare los valores de fecha utilizando el operador de comparación
if ($ dateVal1> $ dateVal2)
echo date_format ($ dateval1, "d-m-y"), "es mayor que", date_format ($ dateval2, "d-m-y") ",".";
demás
echo date_format ($ dateval1, "d-m-y"), "es menor que", date_format ($ dateval2, "d-m-y") ",.";
?>

La siguiente salida aparecerá después de ejecutar el script anterior:

Ejemplo 4: Compare objetos de fecha de diferentes formatos

Cree un archivo PHP con el siguiente script para crear dos objetos de fecha de diferentes formatos utilizando el Fecha y hora clase. A continuación, la declaración condicional se ha utilizado para comparar las fechas.

// verificar la fecha del evento está configurada o no
if (isset ($ _ get ['ed']))

if ($ _ get ['ed'] != "")

// Lee la fecha actual
$ Today = new DateTime ();
// Lea la fecha del evento del parámetro URL
$ eventDate = new DateTime ($ _ get ['ed']);
// Calcule la diferencia entre las fechas
$ Difference = $ Today-> Diff ($ EventDate);
/*
Se devolverá un número positivo
Si la fecha del evento es mayor que la fecha actual
*/
if ($ diferencia-> format ("%r%a")> 0)
Echo "El evento está llegando a", $ Difference-> Days, "Days.";
demás
Echo "El evento se organizó antes", $ Difference-> Days, "Days.";

demás
// Mensaje de error de impresión
echo "La fecha del evento está vacía.";

demás
// Mensaje de error de impresión
Echo "Falta la fecha del evento.";
?>

Después de ejecutar el script anterior, la siguiente salida aparecerá si no se pasa ningún valor de fecha como parámetro de URL:

Después de ejecutar el script anterior, aparecerá la siguiente salida si se pasa "2022-10-15" en el parámetro URL:

Después de ejecutar el script anterior, aparecerá la siguiente salida si se pasa "2022-01-15" en el parámetro URL:

Ejemplo 5: Compare objetos de fecha de diferentes formatos utilizando la función date_create ()

Cree un archivo PHP con el siguiente script para crear dos objetos de fecha de diferentes formatos utilizando el date_create () función. A continuación, la declaración condicional se ha utilizado para comparar las fechas.

// Asigna la primera fecha usando date_create () Función
$ dateVal1 = date_create ("30-10-2022");
// Asigna la segunda fecha usando date_create () Función
$ dateVal2 = date_create ("16 de diciembre 2022");
// Compare los valores de fecha de diferente formato
if ($ dateVal1> $ dateVal2)
echo $ dateval1-> format ("d m y"), "es mayor que", $ dateval2-> format ("d m y") ",", ",", ".";
demás
echo $ dateval1-> format ("d m y"), "es menor que", $ dateval2-> format ("d m y") ",", ",".";
?>

La siguiente salida aparecerá después de ejecutar el script anterior.

Compare los valores de la fecha basados ​​en los valores de la marca de tiempo

La forma de comparar los valores de la fecha basados ​​en los valores de la marca de tiempo se ha mostrado en el siguiente ejemplo:

Ejemplo 6: Compare las fechas usando la función strTotime ()

Cree un archivo PHP con el siguiente script que comparará dos valores de fecha al convertir las fechas en los valores de la marca de tiempo:

// Definir dos valores de fecha de la cadena
$ dateVal1 = "2022-01-01";
$ dateVal2 = "2022-06-30";
// Compare los valores de la marca de tiempo de las fechas
if (strTotime ($ dateVal1) < strtotime($dateVal2))
echo "$ dateVal1 es inferior a $ dateVal2.";
demás
Echo "$ DateVal1 es mayor que $ DateVal2.";
?>

La siguiente salida aparecerá después de ejecutar el script anterior:

Conclusión

Se han mostrado diferentes formas de comparar dos valores de fecha de formatos similares o diferentes en este tutorial. Los usuarios de PHP pueden seguir cualquier método para comparar los valores de fecha en función de sus requisitos.