将ISO日期与当前日期进行比较

时间:2014-12-31 00:22:00

标签: php

我认为我认为ISO日期(可能是错误的)存储在我的数据库中:

2015-01-03T12:30:00.000Z

我想检查一下这个日期是否超过24小时。

我看过if($date > new DateTime())等,但是如何实现这个目标有点困惑。

1 个答案:

答案 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);