$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
7条答案
按热度按时间9fkzdhlc1#
应避免任何程序性的方式。
使用OOP方法计算日期时间差:
字符串
您可以根据需要设置不同的格式。
型
您可以根据需要删除上述任何值。例如,如果您只对小时差感兴趣,并且知道时间差不能超过24小时,则只使用
%H
。如果您想获得以秒为单位的总差值,则可以用途:
型
这取决于您的需要和您希望有时差的最终格式。
参考文献检查:https://www.php.net/manual/en/datetime.diff.php
4sup72z82#
你可以使用php strtotime将你的时间戳转换成unix时间戳(秒),然后取其差值。你现在有时间的差异,以秒为单位,可以转换成你所需要的…小时,分钟,天
http://php.net/manual/en/function.strtotime.php
例如:
字符串
v09wglhw3#
最简单的答案(当然对我来说)在这里
字符串
在本例中,date_create()函数创建DateTime对象
x8goxv8g4#
我创建了一个函数,它可以帮助你从两个Unix时间戳中获取小时,分钟和天,只需将type作为第三个参数传递。
字符串
jjhzyzn05#
@atul-baldaniya,我已经修改了你的解决方案,以避免负值,并返回整数结果而不是十进制值。
字符串
tyky79it6#
如果需要**00:00:00(时、分、秒)**格式的差值,可以使用此功能。
我使用
sprintf()
是因为在一个数字结果前加零。字符串
zaq34kh67#
试试这个代码,测试phpfiddle.org:-
字符串