我需要将秒数转换为日期,然后将时差显示为天、小时和秒。
但是由于某种原因,在几天之后,在下一个全天之前的最后一个小时,我得到了负小时值。现在,如果日期大于 38 天(在 11 月 1 日之前),则会出现此问题。也许明天这个值会有所不同,我不确定。
代码:
$s = 84600; // 23.5 h in seconds
$s += (60*60*24)*38; // add 38 days in seconds
$d = (new \DateTime())->modify("-".$s."seconds");
echo (new \DateTime())->diff($d)->format("%a days %h:%I");
// shows: 38 days -1:30
相同的代码,相差 1 天:
$s = 84600; // 23.5 h in seconds
$s += (60*60*24)*37; // add 37 days in seconds
$d = (new \DateTime())->modify("-".$s."seconds");
echo (new \DateTime())->diff($d)->format("%a days %h:%I");
// shows: 37 days 23:30
PHP 版本 5.6.2。在本地主机、服务器和http://sandbox.onlinephpfunctions.com/上进行了测试,结果相同。