[英]Immitate PHP 5.3 DateTime in PHP 5.2
我在我的本地計算機上使用PHP 5.3中的DateTime對象進行了一些有用的操作,但我的主機(NFS)只運行了5.2,並且在5.3.1出來之前不打算升級。
所以我的問題是,這個代碼是否可以使用5.2? 具體來說,5.2中不存在DateTime :: getTimestamp
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個小時。
最后一行必須翻譯成
echo '<h3>' . $reqDate->format('U') . '</h3>';
為了使用PHP 5.2。 除此之外,它看起來很好。
編輯:您可以將DateTime
子類化以提供向前兼容的解決方案:
class MyDateTime extends DateTime {
public function getTimestamp() {
return method_exists('DateTime', 'getTimestamp') ?
parent::getTimestamp() : $this->format('U');
}
}
這是一個非常完整的DateTime 5.2擴展。 請查看我對setTimestamp的評論來修復你的time_zone問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.