在PHP中获取两次之间的时差

在PHP中获取两次之间的时差,php,mysql,time,Php,Mysql,Time,可能重复: 我正在制作考勤表,计算迟到和非常迟到的员工。 我将登录时间存储在表中(类型:time)。我可以从数据库中获取时间,我想在单独的列中显示时间差 i、 例如,如果员工在09:00:59之前登录,则其正确时间和时间差应显示为空。如果他在时间之后登录,即09:01:00或更晚,则时差应为00:00:01。像怀斯一样,我需要计算时间上的差异 一个时间是常量,即,09:00:59,另一个时间是从数据库表中获取的。需要在两者之间进行区分。 我在PHP工作。 希望我的问题清楚 提前谢谢。 <

可能重复:

我正在制作考勤表,计算迟到和非常迟到的员工。 我将登录时间存储在表中(类型:time)。我可以从数据库中获取时间,我想在单独的列中显示时间差

i、 例如,如果员工在
09:00:59
之前登录,则其正确时间和时间差应显示为空。如果他在时间之后登录,即
09:01:00
或更晚,则时差应为
00:00:01
。像怀斯一样,我需要计算时间上的差异

一个时间是常量,即,
09:00:59
,另一个时间是从数据库表中获取的。需要在两者之间进行区分。 我在PHP工作。 希望我的问题清楚

提前谢谢。


<?php
$start = strtotime("12:00");
$end = // Run query to get datetime value from db
$elapsed = $end - $start;
echo date("H:i", $elapsed);
?>
您可以使用它来计算时间。以下是一个例子:

$checkTime = strtotime('09:00:59');
echo 'Check Time : '.date('H:i:s', $checkTime);
echo '<hr>';

$loginTime = strtotime('09:01:00');
$diff = $checkTime - $loginTime;
echo 'Login Time : '.date('H:i:s', $loginTime).'<br>';
echo ($diff < 0)? 'Late!' : 'Right time!'; echo '<br>';
echo 'Time diff in sec: '.abs($diff);

echo '<hr>';

$loginTime = strtotime('09:00:59');
$diff = $checkTime - $loginTime;
echo 'Login Time : '.date('H:i:s', $loginTime).'<br>';
echo ($diff < 0)? 'Late!' : 'Right time!';

echo '<hr>';

$loginTime = strtotime('09:00:00');
$diff = $checkTime - $loginTime;
echo 'Login Time : '.date('H:i:s', $loginTime).'<br>';
echo ($diff < 0)? 'Late!' : 'Right time!';
$checkTime=strottime('09:00:59');
回显“检查时间:”。日期('H:i:s',$checkTime);
回声“
”; $loginTime=strottime('09:01:00'); $diff=$checkTime-$loginTime; 回显“登录时间:”.date('H:i:s',$loginTime)。“
”; 回声($diff<0)?'迟到了!:'是时候了;回声“
”; 回显“秒时间差:”.abs($diff); 回声“
”; $loginTime=strottime('09:00:59'); $diff=$checkTime-$loginTime; 回显“登录时间:”.date('H:i:s',$loginTime)。“
”; 回声($diff<0)?'迟到了!:'是时候了; 回声“
”; $loginTime=strottime('09:00:00'); $diff=$checkTime-$loginTime; 回显“登录时间:”.date('H:i:s',$loginTime)。“
”; 回声($diff<0)?'迟到了!:'是时候了;
检查已提出的问题-:

用未来的最大值减去过去的最大值,再除以60

时间是以unix格式完成的,所以它们只是一个显示时间的大数字 从1970年1月1日起的秒数00:00:00 GMT

您还可以使用类:

结果:

1 second(s)

在摆出你的姿势之前,先搜索一堆。是的,我搜索得很好,但我找不到我的要求。这就是我提出的问题。谢谢。@VallabhPatade。这不是重复的问题。那是另一种问题谢谢你。。。工作起来很酷。。和我试过的一样。但我没有得到。我不知道为什么。谢谢,这帮了我很多没用的例子。检查此计算是否正确(使用您的代码):Time 1:14:31:34 Time 2:16:09:43 Diff:02:38:09这在所有情况下都不起作用:例如12:15:00和12:15:01对于反对票,感谢反对票。我更新了我的示例代码。。。。。。。
1 second(s)