📅  最后修改于: 2023-12-03 15:37:26.158000             🧑  作者: Mango
在 PHP 中,我们可以使用内置的 DateTime
类来计算从开始日期时间到结束日期时间的总时间。
要计算时间差,我们需要创建两个 DateTime
对象,一个代表开始时间,一个代表结束时间,然后使用 diff()
方法来计算它们之间的时间差。
$startTime = new DateTime('2021-08-01 12:00:00');
$endTime = new DateTime('2021-08-02 14:30:00');
$interval = $endTime->diff($startTime);
echo $interval->format('%d days %h hours %i minutes %s seconds');
输出将会是 1 days 2 hours 30 minutes 0 seconds
。
format()
方法中使用的时间差格式字符串由以下部分组成:
%Y
:整数形式的年份,如 2021。%m
:整数形式的月份(带前导零),如 08。%d
:整数形式的天数(带前导零),如 01。%a
:距离开始时间的总天数。%H
:整数形式的小时数(带前导零),如 12。%h
:整数形式的小时数(无前导零),如 2。%I
:整数形式的分钟数(带前导零),如 30。%i
:整数形式的分钟数(无前导零),如 30。%S
:整数形式的秒数(带前导零),如 05。%s
:整数形式的秒数(无前导零),如 5。%f
:秒后面的微秒数(带前导零),如 001000。%F
:秒后面的微秒数(无前导零),如 1000。%R
:小时和分钟,如 12:30。%T
:小时、分钟、秒,如 12:30:05。如果我们有两个 Unix 时间戳表示的时间点,可以使用简单的算术运算来计算它们之间的时间差。
$startTime = strtotime('2021-08-01 12:00:00');
$endTime = strtotime('2021-08-02 14:30:00');
$diffInSeconds = $endTime - $startTime;
$diffInMinutes = $diffInSeconds / 60;
$diffInHours = $diffInMinutes / 60;
$diffInDays = $diffInHours / 24;
echo "时间差为:{$diffInSeconds} 秒,{$diffInMinutes} 分钟,{$diffInHours} 小时,{$diffInDays} 天";
输出将会是 时间差为:97200 秒,1620 分钟,27 小时,1.125 天
。
这就是在 PHP 中计算从开始日期时间到结束日期时间的总时间的方法。你可以使用 DateTime
类来计算时间差,或者使用 Unix 时间戳来进行算术运算。