PHP preg_match com regex de trabalho [duplicado]

Esta questão já tem uma resposta aqui:

Validar formato de data no php 7 respostas
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;
    }
}

Isso sempre retorna falso. Eu usei uma única ferramenta para construir a expressão regular e estava funcionando bem lá. O problema começou quando adicionei o "/" ao regex. De alguma forma o PHP parece exigir isso, mas eu não sei por que e eu não sei por que ele quebra meu regex.

Deve retornar TRUE para sth. como "2012-08-24 20:30:00" e FALSE para "asdf2012-08-24 20: 30: 00asdf" ou qualquer coisa que não esteja de acordo com o meu regex

Desde já, obrigado!

----------------------- EDIT Obrigado por todas as suas respostas!

Como alguns usuários apontaram minha função retorna true para a data da amostra "2012-08-24 20:30:00". No entanto, isso só acontece se eu definir manualmente $ date = '2012-08-24 20:30:00'. Se eu chamar a função em outro lugar no meu código com a mesma string que retorna false. Alguem sabe por quê?

----------------------- EDIT2

Sim, desculpe por desperdiçar seu tempo, era de fato algum espaço em branco que foi adicionado à string. usando trim () na minha data antes de chamar minha função dá o resultado correto agora.

Obrigado a todos!

questionAnswers(4)

yourAnswerToTheQuestion