Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从两次计算两小时?_Php_Time_Hour - Fatal编程技术网

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

Php 如何从两次计算两小时?,php,time,hour,Php,Time,Hour,我有两次,比如上午10:00和晚上7:00 从这里我想得到总小时数。从那时起,我必须得到9个小时 我该怎么做 我用分解它:但是它从10中减去7,然后返回结果3,这是不正确的,因为它应该返回9。你可以使用PHP函数将其转换为unix时间,这样你就可以用它做进一步的计算。我假设你可以得到am或pm信息!有了这些信息,您可以创建一个if(),使其正确 <?php echo strtotime('7:00 pm')-strtotime('10:00 am');?> If()是下午,加上1

我有两次,比如上午10:00和晚上7:00

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

我该怎么做


我用
分解它:
但是它从10中减去7,然后返回结果3,这是不正确的,因为它应该返回9。

你可以使用PHP函数将其转换为unix时间,这样你就可以用它做进一步的计算。

我假设你可以得到
am
pm
信息!有了这些信息,您可以创建一个
if()
,使其正确

<?php echo  strtotime('7:00 pm')-strtotime('10:00 am');?>
If()
是下午,加上12小时,如果不是下午,什么都不要做

按照您正在比较的时间执行此操作:

if (pm==1){
time+=12;
}
因此
10:00am=false
将是10:00 而且
7:00 pm=true
将是19:00


19:00-10:00=9小时=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小时,但这里第1天和第2天包含今天,这意味着0*24=0+21=21


最终输出:21小时

但它以时间戳的形式返回。我要9号,但下午3:00到凌晨12:00返回15号。这是不正确的。@Ahmad这是正确的。[1 2 3 4 5 6 7 8 9 10 11]上午[12 1 2 3]下午=总共15小时不正确。我在计算在办公室的总时间。因此,如果办公时间从下午3点到凌晨12点,则总工作时间为9小时。它返回15,这是不正确的。当我试图计算从下午3:00到凌晨12:00的时间时,它也返回15。这个……对不起,错误的信息……你必须得到时间差,然后将结果除以3600将得到小时,同样的方法得到分钟。。。。。。
    $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