Immitate PHP 5.3 DateTime в PHP 5.2

Я играл с объектом DateTime в PHP 5.3 на своем локальном компьютере и сделал что-то полезное, но мой хост (NFS) работает только с 5.2 и не планирует обновляться до тех пор, пока не будет выведено 5.3.1.

Итак, мой вопрос: возможно ли использовать этот код с использованием 5.2? В частности, DateTime:: getTimestamp не существует в 5.2

Приложение nicetime.php похоже на то, что здесь http://cz2.php.net/manual/en/function.time.php#89415 в основном оно выводит, как долго до/назад отметка времени)   

include('include/nicetime.php');

if(isset($_GET['hour']) && isset($_GET['min']) && isset($_GET['AP']) && isset($_GET['TZ'])){
    if($_GET['AP'] == 'PM'){
        $reqHour = $_GET['hour']+12;
    }else{
        $reqHour = $_GET['hour'];
    }

    $reqHour = ($_GET['AP'] == 'PM' ? $_GET['hour']+12 : $_GET['hour']);
    $reqMin = ($_GET['min'] == 0 ? '00': $_GET['min']);

    date_default_timezone_set($_GET['TZ']); 
    $reqDate = date_create($reqHour.':'.$reqMin);

    echo '<h3>'.nicetime($reqDate->getTimestamp()).'</h3>';
}

?>

Если вам интересно, в чем дело, пользователь хочет знать, сколько времени до определенного времени в часовом поясе отличается от того, в котором они находятся. Например, когда это 9 вечера в Англии? Через 2 часа.

Ответ 1

Последняя строка должна быть переведена на

echo '<h3>' . $reqDate->format('U') . '</h3>';

для работы с PHP 5.2. Другое, что это выглядит хорошо.

Edit: Вы можете подклассифицировать DateTime для обеспечения передового решения:

class MyDateTime extends DateTime {
    public function getTimestamp() {
         return method_exists('DateTime', 'getTimestamp') ? 
             parent::getTimestamp() : $this->format('U');
    }
}

Ответ 2

Это довольно полное расширение DateTime 5.2. Найдите мой комментарий для setTimestamp, чтобы исправить ваши проблемы с time_zone, хотя

https://gist.github.com/SeanJA/349273