Это извлечет каждый компонент из даты и переставит его так, чтобы strtotime()
понимал.Преобразуйте в любой формат даты, который вы хотите после этого.
Использование регулярных выражений, вероятно, излишне.
function parse_date_time_to_ts($dt)
{
$dt_pattern = '#([0-9]{4})\s+([0-9]{1,2})\s+([a-z]+)\s+([0-9]{1,2}:[0-9]{2})\s+(am|pm)#is';
$dt_replace = '$2 $3 $1 $4 $5';
return strtotime(preg_replace($dt_pattern, $dt_replace, $dt));
}