PHP strtotime 在我的本地计算机上工作但在服务器上失败
var_dump(strtotime("2012-W07 Monday"));
在我的本地计算机(PHP 版本 5.3.4)上返回 int 1329170400
但在服务器(PHP 版本 5.1.6)上它返回
布尔值(假)
一些其他格式,如“today”、“now”等,可以在双方正常工作。是因为php版本的问题,还是其他什么问题?
var_dump(strtotime("2012-W07 Monday"));
returns int 1329170400
on my local computer (PHP Version 5.3.4) but on the server (PHP Version 5.1.6) it returns
bool(false)
Some other formats like "today", "now" etc. work properly on both sides. Is it because of php versions, or what else could be wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我希望这与一个小的功能改进或一个修复的错误有关。
并非所有更新/错误修复都会出现在 PHP 文档中。
我会为您测试一下,但没有低于 5.3.1 的可用安装。
我认为你最好的选择是在某个地方获取默认的 PHP 5.1.6 并在本地计算机或另一台服务器上进行测试。我敢打赌,它也会在那里失败。
I would expect this to be related to a minor feature improvement or a fixed bug.
Not all updates/bugfixes make it to the PHP docs.
I would test it for you, but don't have an install lower than 5.3.1 available.
I think your best bet would be to somewhere grab a default PHP 5.1.6 and test on your local machine or another server. My bet is that it would fail there as well.
您可以将
'YYYY-MM-DD'
格式与 strtotime() 一起使用,并且此格式应该适用于所有版本。为了获得最稳定的行为,我建议仅将广泛使用的日期时间格式传递给 strtotime()。请注意,strtotime() 期望以
'/'
分隔的日期采用'MM/DD/YYYY'
格式,这是美国的日期顺序。欧洲使用不同顺序,以'/'
分隔。You can use
'YYYY-MM-DD'
format with strtotime() and this format should work in all versions.For the most stable behavior, I recomend passing only widely-used date-time formats to strtotime(). Be aware strtotime() expects a date separated by
'/'
to be in'MM/DD/YYYY'
format, which is the American order for dates. Europe uses a different order separated by'/'
.