我在本地计算机上使用PHP 5.3中的DateTime对象进行了一些有用的操作,但是我的主机(NFS)只运行了5.2,并且在5.3.1结束之前不打算升级。
所以我的问题是,这个代码是否可以使用5.2? 具体来说,5.2
中不存在DateTime :: getTimestampnicetime.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>';
}
?>
如果你想知道它的重点是什么,用户想要知道在一个时区中某个时间段与他们不同的时间。例如,什么时候在英格兰是什么时候?从现在起2个小时。
答案 0 :(得分:12)
最后一行必须翻译成
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');
}
}
答案 1 :(得分:1)
这是一个非常完整的DateTime 5.2扩展。请查看我对setTimestamp的评论来解决你的time_zone问题