我对mktime有一个简单的问题。我找到了以下代码:
echo date("Y-M-d", mktime(11, 45, 0, 01, 05, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 01, 06, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 01, 07, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 01, 08, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 01, 09, 2014)); echo ", ";
正在产生以下输出:
2014-Jan-05, 2014-Jan-06, 2014-Jan-07, 2013-Dec-31, 2013-Dec-31
日期功能就是为了让它更具可读性; mktime返回的时间戳本身是错误的。 唯一更改的事情是月份的日期,所以我不知道为什么在7到8天之间会出现不连续性,或者为什么8和9都会在同一天返回
我已经检查过小时,分钟和秒不会改变错误日期的结果,尽管它们确实会改变确切的时间戳。也就是说,上面的最后两行返回完全相同的时间戳(1388508300),但如果我更改小时,则时间戳的相对变化是预期的。
如果上下文很重要,这将在WordPress安装中的PHP 5.3中运行。
答案 0 :(得分:8)
以0..
开头的整数文字是八进制表示法。八进制或以上的08
不存在,你得到完全错误的值。第五天的 值 为5
,而不是05
,依此类推。
答案 1 :(得分:5)
在你的日子(和几个月)之前摆脱领先的零
echo date("Y-M-d", mktime(11, 45, 0, 1, 5, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 1, 6, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 1, 7, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 1, 8, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 1, 9, 2014)); echo ", ";