如何判断包含类似“2015-05-12 15:32:53”的戳记的变量是否少于或超过一小时与当前时间戳进行比较?我可以使用PHP中的任何好函数来比较这种时间格式吗?
我有这段代码:
$date = date('Y-m-d h:i:s a', time()); //Current time e.g. "“2015-05-12 13:32:53”
$timetocomp; //Contains “2015-05-12 15:32:53”
我的问题是我如何比较它们以了解是否已经过了2个小时。
答案 0 :(得分:1)
尝试DateTime
$timetocomp = "2015-06-27 09:10:53"; // its 2015-05-28 08:5x:xx now
$dateTimeToCompare = DateTime::createFromFormat('Y-m-d H:i:s', $timetocomp);
var_dump($dateTimeToCompare);
$dateTimeNoW = new DateTime();
$diff = $dateTimeToCompare->diff($dateTimeNoW);
if($diff->h >= 1 or $diff->d > 0 or $diff->m > 0 or $diff->y > 0) {
echo "difference of at least 1 hour";
} else {
echo "difference less than 1 hour";
}
编辑:我的错误是我假设 $ diff 会包含每个尺码的差异,但它的分隔为var_dump($diff)
显示。
object(DateInterval)#3 (15) {
["y"]=> int(0)
["m"]=> int(0)
["d"]=> int(30)
["h"]=> int(0)
["i"]=> int(15)
["s"]=> int(13)
["weekday"]=> int(0)
["weekday_behavior"]=> int(0)
["first_last_day_of"]=> int(0)
["invert"]=> int(1)
["days"]=> int(30)
["special_type"]=> int(0)
["special_amount"]=> int(0)
["have_weekday_relative"]=> int(0)
["have_special_relative"]=> int(0)
}
所以我更新了If-clause,以便查看日期,月份和年份。
答案 1 :(得分:0)
如果您要检查天气字符串是否包含该格式,请尝试使用正则表达式,然后尝试找出实际日期并进行比较。