希望有人可以回答这个问题。
运行这段代码:
$date = "2nd January, 2013";
echo date("Y-m-d",strtotime($date));
返回:
2012-01-02.
这显然是不正确的(或者至少是我希望的结果)
现在基于一些在线研究,这可能会随着时间的推移而传递,而不是年份。有没有办法管理这个,或者你必须以美国格式提供日期才能正确返回?
根据 PHP可接受的日期字符串格式,逗号仅在Textual 月、日和年格式中可接受:m ([ .\t-])* dd [,.stndrh\t ]+ y
所以你必须要么切换月份和日期的位置,要么去掉逗号:
echo date("Y-m-d",strtotime("2nd January, 2013")); //outputs "2012-01-02"
echo date("Y-m-d",strtotime("2nd January 2013")); //outputs "2013-01-02"
echo date("Y-m-d",strtotime("January 2nd, 2013")); //outputs "2013-01-02"
我猜第一个语句返回 2012 的原因是因为逗号后面的字符被忽略了,所以字符串实际上被视为2nd January
,然后假设当前年份。