我有例如:
$aaa = '12:00:00';
$bbb = '12:45:00';
和
$ccc = '12:00:00';
$ddd = '14:00:00';
和
$eee = '12:00:00';
$fff = '14:11:00';
和
$ggg = '12:00:00';
$hhh = '09:00:00';
如何将$ aaa与$ bbb,$ ccc与$ ddd等进行比较,并检查这些小时之间是否至少有2小时差异?
$ aaa和$ bbb应该返回false
$ ccc和$ ddd shoud return true
$ eee和$ fff应该返回true
$ ggg和$ hhh应该返回false
我怎么做到的? PHP中的任何方法都适用于此吗?
答案 0 :(得分:2)
$aaa = explode(':', '12:00:00');
$bbb = explode(':', '12:45:00');
$aaa = mktime($aaa[0], $aaa[1], $aaa[2]);
$bbb = mktime($bbb[0], $bbb[1], $bbb[2]);
$dif = abs($bbb - $aaa); - difference in seconds, check abs function - you may not require it, then you will need to add ($dif>=0)
if ($dif <= 2*60*60) - cool, difference is 2 or less hours
注意:你可以使用strtotime但爆炸会更快
而不是mktime,您可以使用直接计算:
$aaa = intval($aaa[0], 10) * 60*60 + intval($aaa[1], 10) * 60 + intval($aaa[2], 10);
$bbb = intval($bbb[0], 10) * 60*60 + intval($bbb[1], 10) * 60 + intval($bbb[2], 10);
注意:intval非常需要确保字符串表示正确转换为int,并且没有尝试将0转换为八进制表示