strtotime() 今天时间的不同输出
在 PHP 中,我使用了以下代码:
echo strtotime("today")."<br>";
echo strtotime("06/08/2011")."<br>";
我得到两个不同的输出:O
这是为什么?
谢谢
In PHP , i've used the following code :
echo strtotime("today")."<br>";
echo strtotime("06/08/2011")."<br>";
I'm getting two different outputs :O
Why is that ?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你会得到不同的输出,因为第二个输出不是你想象的今天。第二个日期实际上是 2011 年 6 月 8 日。
如果您编写以下代码:
您可以明白我在说什么。
第二行应该是:
You get different outputs because the second one is not today, as you think. The second date is read actually as 08 June 2011.
If you write this code:
You can see what I'm saying.
The second line should be:
06/08/2011
被解释为月-日-年,因此2011 年 6 月 8 日
。来自 文档:
06/08/2011
is being interpreted as month-day-year, soJune 8th, 2011
.From the docs:
因为在某些区域设置中“6/8/2011”表示“6 月 8 日”,而在其他区域设置中则表示“8 月 6 日”。
对我(在美国)来说,它意味着“6 月 8 日”。
以下是讨论 setlocale() 和 LC_TIME 的 PHP 文档:
http://php.net/manual /en/function.setlocale.php
Because in some locales "6/8/2011" means "June 8", and in other locales it means "August 6".
For me (in the U.S.), it means "June 8".
Here's the PHP documentation which discusses setlocale() and LC_TIME:
http://php.net/manual/en/function.setlocale.php
strtotime("today");
正在获取现在的准确时间。您可以运行
time()
来获得相同的结果。strtotime("06/08/2011")
正在获取您指定日期的午夜 (00:00
) 时间。顺便说一句,您指定的日期是 2011 年 6 月 8 日。默认情况下,PHP 不处理 dd/mm/yyy。您必须指定这是您的区域设置默认设置。
strtotime("today");
is getting the exact time it is right now.You can run
time()
to get the same result.strtotime("06/08/2011")
is getting the time at midnight (00:00
) of the day you specified.By the way, the day you specified is June 08, 2011. PHP doesn't handle dd/mm/yyy by default. You would have to specify that that's your locale default setting.
它还取决于 PHP 版本:
: php.net/manual/en/function.strtotime.php#77541" rel="nofollow">来源
It also depends on PHP version:
Source