计算两个日期之间总秒数的最佳方法是什么?到目前为止,我已经尝试了以下方法:
$delta = $date->diff(new DateTime('now'));
$seconds = $delta->days * 60 * 60 * 24;
但是,days
在当前的PHP5.3版本中,DateInterval对象的属性似乎已损坏(至少在Windows上,它总是返回相同的6015
值)。我还尝试过这样做,无法保留每个月的天数(四舍五入到30),leap年等:
$seconds = ($delta->s)
+ ($delta->i * 60)
+ ($delta->h * 60 * 60)
+ ($delta->d * 60 * 60 * 24)
+ ($delta->m * 60 * 60 * 24 * 30)
+ ($delta->y * 60 * 60 * 24 * 365);
但是我真的不满意使用这种半成品解决方案。
@warrenm的问题
—
Vadim Samokhin
format
是,说秒数为0而分钟数为1时,$delta->format("%r%s")
结果为0 :(
更糟糕的是,就像现在有人要修复从粘贴了您的EXACT代码的编码器中发现的代码审查中的缺陷一样,不是每个月都有30天,也不是每年有365天。:) [编辑:那位编码员可能是我自己!]
—
taiganaut
$delta->format("%r%s")
?