strtotime()今天的不同输出

时间:2011-08-06 06:24:25

标签: php date strtotime

在PHP中,我使用了以下代码:

echo strtotime("today")."<br>";
echo strtotime("06/08/2011")."<br>";

我得到两个不同的输出:O

为什么?

由于

5 个答案:

答案 0 :(得分:1)

06/08/2011被解释为月 - 日 - 年,June 8th, 2011

来自docs

  

注意:

     

通过查看,可以消除m / d / y或d-m-y格式的日期   各个组件之间的分隔符:如果分隔符是a   斜线(/),然后是美国m / d / y;而如果   separator是短划线( - )或点(。),然后是欧洲d-m-y格式   假定。

     

为避免潜在的歧义,最好使用ISO 8601(YYYY-MM-DD)   date或DateTime :: createFromFormat()尽可能。

答案 1 :(得分:1)

你会得到不同的输出,因为你认为第二个输出不是今天。第二个日期实际上是2011年6月8日。

如果你写这段代码:

echo date("d M Y @ H:i", strtotime("today"))."<br/>";
echo date("d M Y @ H:i", strtotime("06/08/2011"))."<br/>";

你可以看到我在说什么。

第二行应该是:

strtotime("08/06/2011");

答案 2 :(得分:0)

因为在某些语言环境中“6/8/2011”表示“6月8日”,而在其他语言环境中则表示“8月6日”。

对我来说(在美国),这意味着“6月8日”。

这是讨论setlocale()和LC_TIME的PHP文档:

http://php.net/manual/en/function.setlocale.php

答案 3 :(得分:0)

strtotime("today");正在获得现在的确切时间。

您可以运行time()以获得相同的结果。

strtotime("06/08/2011")获得您指定当天午夜(00:00)的时间 顺便提一下,您指定的日期是2011年6月8日。默认情况下,PHP不处理dd / mm / yyy。您必须指定这是您的区域设置默认设置。

答案 4 :(得分:0)

它还取决于PHP版本:

    PHP 4.1.6中的
  • :“today”与“now”,实际日期时间
  • 相同 PHP 5.1.4中的
  • :“今天”是指今天的午夜

Source