为什么date()返回错误的月份?

时间:2013-07-29 10:46:44

标签: php

date('F Y', strtotime('2013-05-00T00:00:00'));会返回值'April 2013',但我希望它会返回'May 2013'

问题是date()将日期字符串解释为仍然是4月,还是格式字符串?我试过'M Y',仍然给了我'Apr 2013'。还有其他选择吗?

3 个答案:

答案 0 :(得分:3)

日期适用于时间戳,而不是日期的文本表示

如果您将0更改为1表示某一天(从而获得有效日期开始)并使用strtotime

date('F Y', strtotime('2013-05-01T00:00:00'));

然后它会起作用

答案 1 :(得分:2)

PHP将当月0日解释为上个月的最后一天。

当月的有效值为01-31

echo date('d F Y', mktime(0, 0, 0, 5, 0, 2013)); //30 April 2013

echo date('d F Y', mktime(0, 0, 0, 5, 1, 2013)); // 01 May 2013

答案 2 :(得分:0)

date('F Y', strtotime('2013-05-00T00:00:00')); 

0不是有效的开始日期。您必须将其分配给1。然后它将按预期工作。

date('F Y', strtotime('2013-05-01T00:00:00'));