4

我今天在 StackOverflow 上遇到了这个问题,但没有得到答案。

我的问题是

echo date('Y-m-d',strtotime('2012-september-09')); // output - 2012-09-01

echo date('Y-m-d',strtotime('09-september-2012')); // output - 2012-09-09

键盘

我很困惑为什么第一种格式不能产生正确的答案。有什么帮助吗?

4

3 回答 3

6

手册

如果分隔符是斜线 (/),则假定为美式 m/d/y;而如果分隔符是破折号 (-) 或点 (.),则假定为欧洲 dmy 格式

于 2012-09-05T10:08:23.877 回答
4

这不是date函数的行为,而是strtotime. strtotime只能处理日期格式手册页上列出的特定格式的日期。09-september-2012采用此处列出的dd ([ \t.-])* m ([ \t.-])* y格式,但2012-september-09与任何受支持的格式都不匹配。

于 2012-09-05T10:10:05.367 回答
1

我认为在你的代码中,

echo date('Y-m-d',strtotime('2012-september-09'));

strtotime('2012-september-09')不是日期函数的有效格式('2012-september-09')strtotime()

请参阅此链接http://www.php.net/manual/en/datetime.formats.date.php

于 2012-09-05T10:14:13.480 回答