在PHP中,我使用了以下代码:
echo strtotime("today")."<br>";
echo strtotime("06/08/2011")."<br>";
我得到两个不同的输出:O
为什么?
由于
答案 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文档:
答案 3 :(得分:0)
strtotime("today");
正在获得现在的确切时间。
您可以运行time()
以获得相同的结果。
strtotime("06/08/2011")
获得您指定当天午夜(00:00
)的时间
顺便提一下,您指定的日期是2011年6月8日。默认情况下,PHP不处理dd / mm / yyy。您必须指定这是您的区域设置默认设置。
答案 4 :(得分:0)