3

我有两次喜欢10:00 am7:00 pm

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

我将如何做到这一点?

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

4

5 回答 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);
于 2012-03-16T06:23:56.207 回答
1

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

于 2012-03-16T06:24:48.873 回答
1

我假设您可以获得ampm信息!有了这些信息,您就可以做出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.

于 2012-03-16T06:26:53.507 回答
1

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

<?php echo  date('H:i:s',strtotime('7:00 pm')-strtotime('10:00 am'));?>
于 2012-03-16T07:17:10.710 回答
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 小时,但是这里 day1 和 day2 包含今天,这意味着 0*24 = 0 + 21 = 21

最后输出:21小时

于 2018-03-05T10:22:55.750 回答