【发布时间】:2013-09-27 06:40:12
【问题描述】:
我用它来回显两个日期之间的间隔天数,但第二行回显一个浮点数。
echo (mktime(0,0,0,10,27,2013)-mktime(0,0,0,8,18,2013))/(3600*24).'<br>';
echo (mktime(0,0,0,10,28,2013)-mktime(0,0,0,8,18,2013))/(3600*24).'<br>';
结果:
70
71.041666666667
谁能告诉我为什么?谢谢!
【问题讨论】:
-
不知道为什么,但似乎与时区设置有关,我在 php.ini 中更改为 date.timezone = Asia/Shanghai,现在得到整数(正确)结果
-
@user1466527 这不是关于它,阅读我的回答。
-
@Glavić 我不这么认为。检查没有使用 DST 的欧洲/莫斯科(如您在地图上所见)。都是关于数字的。当您更改时区时,
mktime的结果会更改为可被 3600*24 整除的数字。 -
@Glavić 我再次阅读了问题和我们的答案,我认为我们都是对的。你是对的,为什么
mktime结果会发生变化,我是对的,为什么这个表达式的结果是浮点数。 -
@Glavić 将
Europe/Moscow用于mktime(0,0,0,10,28,2013)-mktime(0,0,0,8,18,2013);将返回浮点数。但是对于mktime(0,0,0,10,27,2013)-mktime(0,0,0,8,18,2013);将返回 int。检查它:)