我正在解决 php 5.2.6 问题。我们使用的 API 以 DDMMYYYYHHMM 格式返回日期。正是这种格式,固定长度,没有分隔符。然而,在我的实验中,这种格式似乎破坏了 strptime,当我以这种格式向它提供日期时,它会返回 false(失败)。至少在我的系统上可以通过以下示例重现它:
$format = "%d%m%Y%H%M"; echo print_r(strptime(strftime($format,1225405967),$format),true);
如果我在日期和时间之间添加任何字符,它就会起作用,甚至是空格。所以,这确实有效:
$format = "%d%m%Y %H%M"; echo print_r(strptime(strftime($format,1225405967),$format),true);
我错过了一些明显的东西吗?
编辑:除此之外,由于评论指出的结果,这似乎是特定于平台的。我可以在办公室运行 OSX Leopard 的 Mac 上重现它,但 Linux 机器可以很好地解析它。我认为这是 OSX *nix 中底层 C 库中 strptime 的错误或特性。
此函数与区域设置相关。您是否尝试过设置不同的区域设置? (看setlocale()
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)