如果缓存已过期,我需要重新验证缓存。我的缓存数据看起来像这样
$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;
}
}
有人可以检查我是否正确行事?你有其他解决方案吗?
如果您需要任何其他信息,请告诉我,我会提供......谢谢
答案 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)
所以看起来似乎是一个有效的解决方案。