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

2022-08-30 14:15:39

可能的重复:
如何在PHP中获取以分钟为单位的时差

我正在制作一个出勤表来计算迟到和非常晚的员工。我正在表中存储登录时间(类型:时间)。我能够从数据库中获取时间,我想在单独的列中显示时差。

即,如果员工登录或之前登录,则其正确的时间和时间差异应显示为空。如果他登录的时间之后,即,或更晚,时差应该是。就像明智一样,我需要计算时间的差异。09:00:5909:01:0000:00:01

一个时间是恒定的,即,另一个时间我从数据库表中获得。需要得到两者之间的差异。我在PHP工作。希望我的问题是清楚的。09:00:59

提前感谢您。


答案 1

您可以使用 strtotime() 进行时间计算。下面是一个示例:

$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!';

演示

检查已经提出的问题 - 如何以分钟为单位获取时差

从最过去的一个中减去过去最多的一个,然后除以60。

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


答案 2

您还可以使用 DateTime 类:

$time1 = new DateTime('09:00:59');
$time2 = new DateTime('09:01:00');
$interval = $time1->diff($time2);
echo $interval->format('%s second(s)');

结果:

1 second(s)

推荐