PHP strtotime(YYYY-mm最后一天)错误一个月

Kam*_*ami 4 php datetime strtotime

我在PHP 5.2.12中尝试以下命令:

print (date('Y-m-d', strtotime('2009-12 last day')));
Run Code Online (Sandbox Code Playgroud)

关于php.net手册:

date('m/d/y', strtotime('2009-03 last day')); # 03/31/09
Run Code Online (Sandbox Code Playgroud)

它应该显示2009年3月的最后一天(2009-03-31)!

我的回报是上个月的最后一天?为什么?:

2009-11-30
Run Code Online (Sandbox Code Playgroud)

Roa*_*ter 9

您发布的代码以您描述的方式失败; 似乎PHP手册页中的描述(SilentGhost提到的只是用户注释)是未经验证的代码.

如果您需要某个月的最后一天,请尝试以下方法:

date('Y-m-d', strtotime("2009-12 next month - 1 hour"));
Run Code Online (Sandbox Code Playgroud)

  • 我总是用12个小时,以防万一有人决定夏令时是某个月的第一天或最后一天. (3认同)