我有两次喜欢10:00 am
和7:00 pm
。
从这里我想得到总小时数。从那时起,我必须得到 9 个小时。
我将如何做到这一点?
我已经用 爆炸了,:
但是它从 10 中减去 7 并返回结果 3,这是不正确的,因为它应该返回 9。
<?php echo strtotime('7:00 pm')-strtotime('10:00 am');?>
获取时间戳差异
编辑
echo (strtotime('07:00 pm')-strtotime('10:00 am'))/(60*60); //显示9
60*60 = 1 小时
编辑
$fromTime = '3:00 pm';
$toTime = '12:00 am';
$timediff = (strtotime($toTime)-strtotime($fromTime))/(60*60);
echo $timediff >= 0 ? $timediff : (24 + $timediff);
您可以使用 PHP 的strtotime函数将其转换为 unix 时间,以便您可以使用它进行进一步的计算。
我假设您可以获得am
或pm
信息!有了这些信息,您就可以做出if()
正确的决定!
If()
是下午,加12小时,如果不是下午,什么都不做。
使用您要比较的时间执行此操作:
if (pm==1){
time+=12;
}
所以10:00 am = false
会是 10:00 和7:00 pm = true
19:00
19:00 - 10:00 = 9 hours = win
.
我觉得这会更有效地帮助你
<?php echo date('H:i:s',strtotime('7:00 pm')-strtotime('10:00 am'));?>
使用 DateTime 接口,很简单
$day1= new DateTime("today 01:33:26am");
$dayd2= new DateTime("today 10:40:36pm"); //Output: Hours: 21
$interval= $day1->diff($day2);
$h = ($interval->days * 24) + $interval->h;
echo "Hours: ".$h
这里 h = 小时数。$interval->days 表示如果我们得到一(1)天,则从差异中得到多少天,然后添加 1*24(小时)= 24+21 = 46 小时,但是这里 day1 和 day2 包含今天,这意味着 0*24 = 0 + 21 = 21
最后输出:21小时