我今天在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
我很困惑,为什么第一种格式不能产生正确的答案。任何帮助?
答案 0 :(得分:6)
来自manual:
如果分隔符是斜杠(/),则假设为美国m / d / y;而如果分隔符是破折号( - )或点(。),则假定为欧洲d-m-y格式。
答案 1 :(得分:4)
这不是date
函数的行为,而是strtotime
的行为。 strtotime
只能处理Date Formats手册页中列出的特定格式的日期。 09-september-2012
格式为dd ([ \t.-])* m ([ \t.-])* y
格式,但2012-september-09
与任何支持的格式都不匹配。
答案 2 :(得分:1)
我认为在你的代码中,
echo date('Y-m-d',strtotime('2012-september-09'));
strtotime('2012-september-09')
不适用于strtotime()
日期函数的有效格式('2012-september-09')。
请参阅此链接http://www.php.net/manual/en/datetime.formats.date.php