PHP preg-функциям нужно, чтобы ваше регулярное выражение было заключено в символ разделителя, который может быть любым символом. Вы не можете использовать этот символ разделителя без выхода из регулярного выражения. Это должно работать (здесь символ разделителя /):
preg_match('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', '2008-09-01 12:35:45');
// or this, to allow matching 0:00:00 time too.
preg_match('/\d{4}-\d{2}-\d{2} \d{1,2}:\d{2}:\d{2}/', '2008-09-01 12:35:45');
Если вам нужно сопоставить строки, содержащие только дату и время, добавьте ^ и $ в начале и в конце регулярного выражения.
preg_match('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/', '2008-09-01 12:35:45');
Ссылка на preg_match руководства PHP ()