希望有人能回答这个问题。
运行这段代码:
$date = "2nd January, 2013";
echo date("Y-m-d",strtotime($date));
返回:
2012-01-02.
显然不正确(或者至少是我希望的结果)
现在基于一些在线研究,这可能会将其作为时间而不是年份传递。有没有办法管理这个,或者您是否必须以美国格式提供日期才能正确返回?
答案 0 :(得分:1)
根据PHP的acceptable date string format,逗号只能在文本月,日和年格式中接受: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
,然后假设当前年份。 / p>