Php 如何正确比较datetime和时区与当前时间

Php 如何正确比较datetime和时区与当前时间,php,datetime,Php,Datetime,如果缓存过期,我需要重新验证它。我的缓存数据如下所示 $cacheData['valid_until'] = "2017-11-23T12:00:00+00:00" //string 我想知道如何正确比较当前日期时间是否小于$cacheData['valid_until'],同时考虑时区 这是我当前的代码 private function checkCacheValidation($cacheData) { $now = (new DateTime()); $cacheTim

如果缓存过期,我需要重新验证它。我的缓存数据如下所示

$cacheData['valid_until'] = "2017-11-23T12:00:00+00:00" //string
我想知道如何正确比较当前日期时间是否小于$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;
    }
}
有人能检查一下我的做法是否正确吗?你有没有其他建议

如果您需要任何其他信息,请让我知道,我将提供。。。谢谢

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

$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)