Не совсем уверен, почему вы реорганизуете существующую строку, как ...
echo $timestamp = strtotime('Sat Mar 24 23:59:59 GMT 2012');
... работает правильно. (Возвращает 1332633599, который вы можете проверить с помощью date('r', 1332633599);
(Это приведет к «Сб, 24 марта 2012 23:59:59 +0000», так что все хорошо.)
Тем не менее, если вы собираетесь извлечь все компоненты строки, вы также можете использовать mktime . Например:
function texttotime($texttime) {
if(!$texttime || $texttime=="") return NULL;
list($junk, $month, $day, $time, $timezone, $year) = explode(' ', $texttime);
list($hour, $minute, $second) = explode(':', $time);
return mktime($hour, $minute, $second, $month, $day, $year);
}