如何从两次计算两个小时?

问题描述 投票:3回答:5

我有两次像10:00 am7:00 pm

从这里我想得到总时数。从那时起我必须得到9个小时。

我该怎么做?

我用:爆炸了它,然后它从10减去7并返回结果3,这是不正确的,因为它应该返回9。

php time hour
5个回答
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
投票

您可以使用PHP的strtotime函数将其转换为unix时间,因此您可以使用它进行进一步的计算。


1
投票

我觉得这会更有效地帮助你

<?php echo  date('H:i:s',strtotime('7:00 pm')-strtotime('10:00 am'));?>

1
投票

我假设您可以获取ampm信息!有了这些信息,你可以制作一个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


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-> days表示如果我们得到一(1)天那么从差异中获得多少天然后它会增加1 * 24(小时)= 24 + 21 = 46小时但是今天第1天和第2天包含今天所以,这意味着0 * 24 = 0 + 21 = 21

最后输出:21小时

© www.soinside.com 2019 - 2024. All rights reserved.