Cree la expresión regular de fecha MM/DD/YYYY en PHP
Este tutorial demostrará la forma de crear una expresión regular para el formato de fecha mm/dd/yyyy
en PHP.
Crear la expresión regular de fecha MM/DD/YY
en PHP
Podemos usar la expresión regular para validar la entrada del usuario de acuerdo con las reglas aplicadas en la expresión. Podemos validar cualquier entrada usando la expresión regular, e incluso podemos validar el formato de fecha mm/dd/yyyy
usando la expresión regular.
Podemos crear una expresión regular y almacenarla en una variable. Usaremos la función preg_match()
para probar entradas de formato de fecha aleatorias con la expresión regular.
A continuación se muestra un patrón de expresiones regulares para el formato de fecha mm/dd/yyyy
. Lo discutiremos en detalle.
~(0[1-9]|1[012])[-/](0[1-9]|[12][0-9]|3[01])[-/](19|20)\d\d~
Un patrón de expresiones regulares siempre debe tener un delimitador correcto alrededor. Aquí, el símbolo ~
es el delimitador que rodea el patrón.
A continuación, debemos escribir el formato de los meses en mm/dd/yyyy
.
El mes se representa de 01-12
en el formato. Por lo tanto, el primer dígito del mes puede ser 0
o 1
, por lo que escribimos 0[1-9]
para los meses a partir de 01-09
. El 1-9
dentro del corchete indica el número escrito después de 0
.
Del mismo modo, solo podemos escribir 10
, 11
y 12
para el mes, comenzando con 1
. Por lo tanto, hemos escrito 012
dentro de los corchetes para 1
como 1[012]
.
Usamos el |
símbolo para lograr un O
lógico. Así que lo usamos para separar las reglas como (0[1-9]|1[012])
.
Finalmente, encerramos el patrón entre paréntesis para indicar el final de una sección.
A continuación, tenemos que establecer la regla para los separadores en el formato mm/dd/yyyy
. El patrón anterior permite los separadores de los símbolos -
, /
y .
.
Ahora, escribimos el patrón durante días. Los días son 1-30
, por lo que los días 01-09
se pueden escribir como 0[1-9]
, 10-29
se pueden escribir como 12[0-9]
y los días 30-31
se puede escribir como 3[01]
.
Usamos la misma regla para los separadores después de los días en el formato mm/dd/yyyy
.
Hemos escrito 19|20
como los dos primeros dígitos del año, lo que significa que el año solo puede comenzar desde 19
y 20
. Usamos el patrón \d\d
después de 19|20
para indicar dos dígitos que vienen después de 19
o 20
.
Así es como funciona la expresión regular anterior. Ahora podemos verificar algunos formatos de fecha de prueba con la expresión regular anterior.
Para eso, cree una variable $reg
y almacene la expresión regular que escribimos anteriormente en ella. A continuación, cree un array $dates
y almacene estos formatos de fecha aleatorios.
['03/22/2021', '22/22/2021', '03\22\2021', '03-22-2021', '03/22/1865']
Luego, use el bucle foreach
para repetir la variable $dates
como $date
. Compare la variable $date
con la variable $reg
utilizando la función preg_match()
.
Al hacer esto, podemos verificar si las entradas de prueba cumplen con el patrón de expresiones regulares del formato mm/dd/yyyy
.
Código de ejemplo:
$reg = '~(0[1-9]|1[012])[-/](0[1-9]|[12][0-9]|3[01])[-/](19|20)\d\d~';
$dates =['03/22/2021', '22/22/2021', '03\22\2021', '03-22-2021', '03/22/1865'] ;
foreach($dates as $date){
if(!preg_match($reg, $date)) {
echo 'the date format '.$date.' is incorrect'."<br>";
} else{
echo 'the date format '.$date.' is correct'."<br>";
}
}
Producción :
the date format 03/22/2021 is correct
the date format 22/22/2021 is incorrect
the date format 03\22\2021 is incorrect
the date format 03-22-2021 is correct
the date format 03/22/1865 is incorrect
Aquí, el primer formato sigue todas las reglas. El segundo formato es incorrecto porque el mes no puede ser 22
.
El tercero es incorrecto porque no hemos especificado el separador \
. Hemos especificado el separador -
, por lo que la cuarta fecha es correcta. El año es el 1800
en el último, por lo que es incorrecto.
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedInArtículo relacionado - PHP Date
- Cómo añadir días a la fecha en PHP
- Cómo calcular la diferencia entre dos fechas usando PHP
- Cómo convertir DateTime a cadena en PHP
- Cómo convertir una cadena a fecha y hora en PHP
- Cómo convertir un formato de fecha a otro en PHP
- Cómo obtener la fecha y hora actuales en PHP