我有两次像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时间,因此您可以使用它进行进一步的计算。
我觉得这会更有效地帮助你
<?php echo date('H:i:s',strtotime('7:00 pm')-strtotime('10:00 am'));?>
我假设您可以获取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
。
使用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小时但是今天第1天和第2天包含今天所以,这意味着0 * 24 = 0 + 21 = 21
最后输出:21小时