php步骤超出范围,windows仅带日期(';Y';)

php步骤超出范围,windows仅带日期(';Y';),php,windows,warnings,range,Php,Windows,Warnings,Range,出于兴趣,为什么在windows上会产生警告(并返回false): 不会在live服务器上发生,只在windows上发生。我一直在寻找bug报告,但没有找到。此外,如果运行两个迭代,则只有第一个迭代失败 我有时可以复制,但其他人不能。如果我说20次,其中只有2到3次会给出警告 我使用的是5.3.5我在windows下使用的是PHP5.3.2,我无法重现这个问题。一切正常,正如预期的那样。可能您在其他地方有其他问题导致此错误 $a = range(date('Y'), date('Y') + 5)

出于兴趣,为什么在windows上会产生警告(并返回false):

不会在live服务器上发生,只在windows上发生。我一直在寻找bug报告,但没有找到。此外,如果运行两个迭代,则只有第一个迭代失败

我有时可以复制,但其他人不能。如果我说20次,其中只有2到3次会给出警告


我使用的是5.3.5

我在windows下使用的是PHP5.3.2,我无法重现这个问题。一切正常,正如预期的那样。可能您在其他地方有其他问题导致此错误

$a = range(date('Y'), date('Y') + 5);
print_r($a);
这张照片是:

Array
(
  [0] => 2011
  [1] => 2012
  [2] => 2013
  [3] => 2014
  [4] => 2015
  [5] => 2016
)

升级到5.3.6修复了此问题。不确定问题出在哪里。

我只能在某个时候复制(请参阅更新帖子)。20次中,有2到3次会发出警告。我试了整整50次。50次都没问题。很抱歉无法帮助您…默认步长为1。在使用该值之前,您应该检查返回的日期('Y'),例如,将其存储到变量中,这样您就不会两次调用该函数。然后检查您是否在windows PHP安装中正确配置了时区,这可能与您的问题有关。奇怪的是,它只发生过几次,我猜也是Windows时区设置(我已将默认设置为Europe/London)。如果失败,只需记录变量内容,您就会看到。并检查PHP启动错误。如果存在一些关于时区设置的问题,则可能是。如果不是的话,时区应该是完全无关的,没有问题。我很高兴你这么说,因为我正要说我不能复制它。您应该用勾号图标将答案标记为正确,这样问题就不会出现在“未回答的问题”列表中。:-)明天才能来,但我会:)
Array
(
  [0] => 2011
  [1] => 2012
  [2] => 2013
  [3] => 2014
  [4] => 2015
  [5] => 2016
)