我有 2 个 unix 时间戳,我位于亚太地区/奥克兰时区(GMT+12,夏令时 = GMT+13)
我想计算两个时间戳之间的天数间隔,其中一个在夏令时内,一个不在夏令时内。
我的示例日期是:
7 Feb 2009 (1233925200)
to 21 September 2010 (1284985360)
(不包括21日)
看这里,它说 591 天:
让我们计算一下,这是我的时间戳(均基于奥克兰 00:00 时间)
1284985360-1233925200 = 51060160
51060160 / 86400 = 590.974
所以是的,我需要 591。我不想使用“向上舍入”解决方案
有没有像 strtotime 这样可靠的方法,但是为了计算日期间隔,最好不需要 php 5.3+ 最低
编辑:需要澄清,我使用 STRTOTIME 来获取这些时间戳,我认为那是 UTC
EDIT2:我相信我已经找到了问题。虽然我的结束日期是 9 月 21 日,但我实际上使用 time() 来获取结束日期,而 time() 返回了错误的时间戳,也许它没有考虑 GMT+12,无论我将 time() 切换为strtotime(date('d M Y')) 它返回了正确的时间戳!尤里卡 591 天
在计算差异之前计算两个时间戳的完整天数:
floor(1284985360 / 86400) - floor(1233925200 / 86400)
你的结果始终是一个整数。
既然你正在使用strtotime
要获取这些时间戳,请指定时间00:00:00+0000
始终获得 86400 的倍数:
strtotime($str.' 00:00:00+0000')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)