0

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

这是date()将日期字符串解释为仍在四月还是格式字符串的问题?我试过'M Y'了,还是给了我'Apr 2013'。有替代方案吗?

4

3 回答 3

3

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

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

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

然后它会工作

于 2013-07-29T10:47:52.520 回答
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
于 2013-07-29T10:53:48.623 回答
0
date('F Y', strtotime('2013-05-00T00:00:00')); 

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

date('F Y', strtotime('2013-05-01T00:00:00'));
于 2013-07-29T10:49:43.680 回答