我有两次像10:00 am
和7:00 pm
。
从此我想得到总时数。从那时起,我必须得到9个小时。
我将如何做到这一点?
我已经使用:
将其爆炸但是它从10减去7并返回结果3,这是不正确的,因为它应该返回9。
答案 0 :(得分:4)
<?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);
答案 1 :(得分:1)
您可以使用PHP的strtotime函数将其转换为unix时间,因此您可以使用它进行进一步的计算。
答案 2 :(得分:1)
我假设您可以获取am
或pm
信息!有了这些信息,您可以if()
使其正确无误!
If()
它是PM,增加12小时,如果不是PM,则不做任何事情。
在你比较的时候这样做:
if (pm==1){
time+=12;
}
所以10:00 am = false
将是10:00
和7:00 pm = true
它将是19:00
19:00 - 10:00 = 9 hours = win
。
答案 3 :(得分:1)
我觉得这会更有效地帮助你
<?php echo date('H:i:s',strtotime('7:00 pm')-strtotime('10:00 am'));?>
答案 4 :(得分:0)
使用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-&gt;天意味着如果我们得到一(1)天然后它会增加1 * 24(小时)= 24 + 21 = 46小时,但是这里第1天和第2天包含今天所有,这意味着0 * 24 = 0 + 21 = 21
最后输出:21小时