如何正确比较日期时间与时区与当前时间

时间:2017-11-22 10:02:57

标签: php datetime

如果缓存已过期,我需要重新验证缓存。我的缓存数据看起来像这样

$cacheData['valid_until'] = "2017-11-23T12:00:00+00:00" //string

我想知道如何正确比较当前的dateTime是否小于$ cacheData [' valid_until'],同时还要考虑时区......

这是我目前的代码

 private function checkCacheValidation($cacheData) {
    $now = (new DateTime());
    $cacheTime = (new DateTime($cacheData['valid_until']));

    if ($now < $cacheTime) {
        die('Cache is valid, no need to request new data');
        return true;
    } else {
        die('cache not valid, get new data');
        return false;
    }
}

有人可以检查我是否正确行事?你有其他解决方案吗?

如果您需要任何其他信息,请告诉我,我会提供......谢谢

1 个答案:

答案 0 :(得分:1)

正如您在following topic中所看到的,可以比较日期时间变量:

$d1 = new DateTime('2008-08-03 14:52:10');
$d2 = new DateTime('2008-01-03 11:11:10');
var_dump($d1 == $d2);
var_dump($d1 > $d2);
var_dump($d1 < $d2);

给出结果:

bool(false)
bool(true)
bool(false)

所以看起来似乎是一个有效的解决方案。