PHP DateTime明年的第一天

Loe*_*oek 5 php datetime parsing

我想知道是否有'正确'的方式来打电话:

$endDate = new DateTime('first day of next year');
Run Code Online (Sandbox Code Playgroud)

我知道PHP解析器需要一个月之后 of(见这里),但next year似乎有点按预期工作.如果月份是5月份,它将在明年4月1日表示为$endDate.

当然,我们可以通过以下方式解决这个问题:

$endDate = new DateTime('first day of january');
$endDate->modify('+1 year');
Run Code Online (Sandbox Code Playgroud)

但是我无法想象,自从PHP 5.3在7年前问世以来,没有人会修复这个"错误".

iai*_*inn 8

它并不像你想要的那样明确(有没有1月不是第一个月的情况?),但这可以回到PHP 5.2

$endDate = new DateTime('1st January Next Year');
echo $endDate->format('Y-m-d'); // 2017-01-01
Run Code Online (Sandbox Code Playgroud)

https://3v4l.org/H5P8s

  • '明年1月1日'也将在那里工作. (2认同)