在PHP中获取两次之间的时间差[重复]

Posted

技术标签:

【中文标题】在PHP中获取两次之间的时间差[重复]【英文标题】:Getting time difference between two times in PHP [duplicate] 【发布时间】:2012-12-05 08:48:35 【问题描述】:

可能重复:How to get time difference in minutes in php

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

即,如果员工在09:00:59 之前或之前登录,则其正确时间和时间差异应显示为空。如果他在该时间之后登录,即09:01:00 或更晚,则时差应为00:00:01。同样,我需要计算时间差异。

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

在此先感谢您。

【问题讨论】:

***.com/questions/365191/… 在提出查询之前搜索堆栈 是的,我搜索得很好,但找不到我的要求。这就是我发布的问题。谢谢。 @VallabhPatade 。它不是重复的问题。那是另一种类型的问题 【参考方案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!';

Demo

检查已经提出的问题 - how to get time difference in minutes:

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

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

【讨论】:

谢谢你......它的工作很酷......我试过同样的事情。但我没有得到。我不知道为什么。 感谢它对我有很大帮助 无用的例子。用这个计算检查废话(使用你的代码):时间 1:14:31:34 时间 2:16:09:43 差异:02:38:09 这并非在所有情况下都有效:例如 12:15:00 和 12:15:01 致反对者,感谢反对票。我更新了我的示例代码。【参考方案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)

【讨论】:

它工作.......【参考方案3】:
<?php
$start = strtotime("12:00");
$end = // Run query to get datetime value from db
$elapsed = $end - $start;
echo date("H:i", $elapsed);
?>

【讨论】:

以上是关于在PHP中获取两次之间的时间差[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL 中搜索两次之间的变量

两次之间的时间差(分钟)

如何在php中搜索2次之间的查询

SQL,在计算两次之间的差异时插入表

两次之间的 Bash while 循环

找出两次之间的差异