我有 PHP version 5.3.10-1ubuntu3.10
。
我将日期指定为" 2090-11-29 05:00:00",并使用strotime
将其与当前日期进行打印和比较。但是它返回"空白值"
这是我的代码:
<?php
$dateTime = "2003-04-19 11:00:00";
$mdate = strtotime($dateTime);
$ndateTime = "2090-11-29 05:00:00";
$ndate = strtotime($ndateTime);
echo $ndate.' - <br />';
if(($date > $mdate) && ($date < $ndate)) {
echo $date.' is greater than '.$ndate . ' First ';
} else {
echo $ndate.' is greater than '.$date;
}
echo '<br />';
echo phpversion();
?>
您可以获得的最大日期是2038,请检查2038年的问题以获取有关此问题的更多信息。现在解决问题 - 如@Mike所建议 - 您可以使用DateTime对象,请考虑以下示例:
$date =new DateTime("2090-11-29 05:00:00");
echo $date->format('Y-m-d H:i:s'); //will output 2090-11-29 05:00:00
您可以根据需要设置格式,并且在PHP文档中找到了足够的示例还有DateTime对象的SettimeZone函数
您可以使用DateTime,该日期比32位计算机上的常规时间功能更大的日期;它的构造函数支持与strtotime()
相同的格式,因此转换应该很简单。
但是,在这种情况下,一个简单的字符串比较将完成同一件事,因为Y-m-d H:i:s
格式适合于比较日期,直到y10k。
$mdateTime = "2003-04-19 11:00:00";
$ndateTime = "2090-11-29 05:00:00";
$date = '2013-03-11';
if ($date > $mdateTime && $date < $ndateTime) {
// $date is between $mdateTime and $ndateTime
} else {
echo $ndate.' is greater than '.$date;
}