计算 php 中 2 个时间戳之间的差值

2022-08-30 19:37:00

我在表中使用2个时间戳,这是开始时间数据类型 - 时间戳和当前时间戳。结束时间数据类型时间戳,默认值为 0000-00-00 00:00:00

如何计算php中2个时间戳之间的差异 开始时间:2016-11-30 03:55:06 结束时间: 2016-11-30 11:55:06


答案 1

应避免任何程序性方式。对日期时间差使用 OOP 方法:

$datetime1 = new DateTime('2016-11-30 03:55:06');//start time
$datetime2 = new DateTime('2016-11-30 11:55:06');//end time
$interval = $datetime1->diff($datetime2);
echo $interval->format('%Y years %m months %d days %H hours %i minutes %s seconds');//00 years 0 months 0 days 08 hours 0 minutes 0 seconds

您可以根据需要设置不同的格式。

%Y - use for difference in year
%m - use for difference in months
%d - use for difference in days
%H - use for difference in hours
%i - use for difference in minutes
%s - use for difference in seconds

您可以根据需要删除上述任何值。例如,如果您只对小时差异感兴趣,并且您知道差异不能超过24小时,则仅使用 。%H

如果你想在秒内有总的差异,那么你可以使用:

echo $difference_in_seconds = strtotime('2016-11-30 11:55:06') - strtotime('2016-11-30 03:55:06');//28800

取决于您的需求和您希望具有时差的最终格式。

参考检查:http://php.net/manual/en/datetime.diff.php

我希望它有帮助


答案 2

您可以使用php strtotime将时间戳转换为unix时间戳(以秒为单位的时间),然后取差值。您现在拥有以秒为单位的时间差异,并且可以转换为您需要的内容...小时, 分钟, 天

http://php.net/manual/en/function.strtotime.php

前任:

$ts1 = strtotime($start);
$ts2 = strtotime($end);     
$seconds_diff = $ts2 - $ts1;                            
$time = ($seconds_diff/3600);

推荐