PHP 5.2 immitate PHP 5.3 DateTime

2 Cevap php

Benim yerel makine üzerinde PHP 5.3 DateTime nesne ile oynarken ve yararlı bir şeyler yaptı ama benim ana (NFS) sadece 5.2 çalıştıran ve 5.3.1 çıkana kadar yükseltmek için plan yapmaz oldu.

So my question is, is this code possible using 5.2? Specifically, DateTime::getTimestamp doesn't exist in 5.2

The nicetime.php include is similar to the one here http://cz2.php.net/manual/en/function.time.php#89415 basically it just outputs how long until/ago a timestamp is)

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>';
}

?>

Eğer bunun ne anlamı var merak ediyorsanız, bir kullanıcı zaman İngiltere'de 21:00, ne kadar uzun bir zaman dilimi içinde belli bir zamana kadar onlar Eg bulunduğunuz farklı, bilmek istiyor? Şimdi 2 saat.

2 Cevap

Son satırı tercüme olurdu

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

PHP 5.2 ile çalışmak için. Diğer ki, gayet iyi görünüyor.

Edit: You could subclass DateTime to provide a forwards compatible solution:

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

Bu oldukça tam bir DateTime 5.2 uzantısıdır. SetTimestamp olsa time_zone sorunları gidermek için benim yorumum arayın

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