Это должно работать в PHP> = 5.3, но это не помогает в моей установке (PHP 5.3.2-1ubuntu4.5):
$timestamp_bad = "Sat Dec 04 17:43:38 +0000 2010";
$dt = DateTime::createFromFormat('D M d H:i:s O Y', $timestamp_bad);
echo $dt->format('Y-m-d H:i:s');
См. Этот отчет об ошибке:
http://bugs.php.net/51393
Однако это работает и должно работать в PHP <5.3: </p>
$timestamp_bad = "Sat Dec 04 17:43:38 +0000 2010";
$timestamp = strtotime($timestamp_bad);
echo date('Y-m-d H:i:s', $timestamp);
Отпечатки:
2010-12-04 17:43:38
Это выглядит как будто другая дата / времяФункции синтаксического анализа, которым может быть передан явный формат преобразования, также завершаются ошибкой при наличии смещения часового пояса:
$timestamp_bad = "Sat Dec 04 17:43:38 +0000 2010";
$dt_array = strptime($timestamp_bad, '%a %m %d %T %z %Y');
// $dt_array == false