我认为我认为ISO日期(可能是错误的)存储在我的数据库中:
2015-01-03T12:30:00.000Z
我想检查一下这个日期是否超过24小时。
我看过if($date > new DateTime())
等,但是如何实现这个目标有点困惑。
答案 0 :(得分:1)
您提供的日期已在ISO-8601中格式化。最后的 Z 代表Zero / Zulu / + 00:00时区。
您可以使用DateTime
+ modify
+ getTimestamp
$dateString = '2015-01-03T12:30:00.000Z';
$date = new DateTime($dateString);
$dateToCompare = (new DateTime())->modify('+24 hours');
if($date->getTimestamp() < $dateToCompare->getTimestamp()){
echo 'more than 24 hours away';
}
如果要将任何日期格式设置为相同格式,则必须将时区设置为Z
并使用格式"Y-m-d\TH:i:s\Z"
$format = "Y-m-d\TH:i:s\Z";
$dateToCompare->setTimezone(new DateTimeZone('Z'));
echo "\n".$dateToCompare->format($format);