Php 如何从两次计算两小时?
我有两次,比如上午10:00和晚上7:00 从这里我想得到总小时数。从那时起,我必须得到9个小时 我该怎么做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中减去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