PHP preg_match con expresiones regulares de trabajo [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Validar formato de fecha en php 7 respuestasfunction validateDate( $date )
{
echo $date;
//2012-08-24 20:30:00
if(preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([1-2]{1})([0-9]{1}):([0-5]{1})([0-9]{1}):([0-5]{1})([0-9]{1})$/', $date) >= 1)
{
return true;
}
else
{
return false;
}
}
Esto siempre devuelve falso. Usé una única herramienta para construir la expresión regular y funcionaba bien allí. El problema comenzó cuando agregué la "/" a la expresión regular. De alguna manera, PHP parece requerir esto pero no sé por qué y no sé por qué rompe mi expresión regular.
Se debe devolver VERDADERO para algo. como "2012-08-24 20:30:00" y FALSO para "asdf2012-08-24 20: 30: 00asdf" o cualquier cosa que no esté de acuerdo con mi expresión regular
¡Gracias por adelantado!
----------------------- EDITAR ¡Gracias por todas sus respuestas!
Como algunos usuarios señalaron, mi función devuelve verdadero para la fecha de muestra "2012-08-24 20:30:00". Sin embargo, lo hace solo si configuro manualmente $ date = '2012-08-24 20:30:00'. Si llamo a la función en otro lugar de mi código con la misma cadena, devuelve falso. ¿Alguien sabe por qué?
----------------------- EDIT2
Sí, perdón por perder el tiempo, en realidad fue un espacio en blanco que se agregó a la cadena. el uso de trim () en mi fecha antes de llamar a mi función da el resultado correcto ahora.
¡gracias a todos!