1

希望有人可以回答这个问题。

运行这段代码:

$date = "2nd January, 2013"; 
echo date("Y-m-d",strtotime($date));

返回:

2012-01-02.

这显然是不正确的(或者至少是我希望的结果)

现在基于一些在线研究,这可能会随着时间的推移而传递,而不是年份。有没有办法管理这个,或者你必须以美国格式提供日期才能正确返回?

4

1 回答 1

1

根据 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,然后假设当前年份。

于 2012-12-03T07:28:13.767 回答