PHP preg_match con expresiones regulares de trabajo [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Validar formato de fecha en php 7 respuestas
function 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!

Respuestas a la pregunta(4)

Su respuesta a la pregunta