В PHP 5.3.3+ (и, возможно, более старых версиях)
date('Y-m-d', strtotime('January 2, 2011'))
(обратите внимание, запятая там есть) даст вам 2011-01-02
Однако, когда вы добавляете час ис минуты до конца этой фразы даты, strtotime возвращает 0.
date('Y-m-d', strtotime('January 2, 2011 14:30'))
К сожалению, дает вам 1970-01-01 00:00:00
Уведомление: http://codepad.org/qgJIJSaw
Попробуйте удалить запятую:
$date = str_replace(',', '', $date);
Кроме того, strtotime преобразует '1-2-11' в 2001-02-11 (11 февраля 2001 г.), поэтому вам, возможно, потребуется изменить порядок чисел, если они соответствуют шаблону, используя что-то вроде:
$date = preg_replace('#^([\d]{1,2})-([\d]{1,2})-([\d]{2,4})$#', '$3-$1-$2', $date);