我想知道是否有一种"正确"的调用方式:
$endDate = new DateTime('first day of next year');
我知道PHP解析器预计一个月后of
(请参阅此处),但next year
似乎按预期工作。如果月份是5月,则会将明年的4月1日列为$endDate
。
当然,我们可以用破解这个问题
$endDate = new DateTime('first day of january');
$endDate->modify('+1 year');
但我无法想象,自从7年前PHP 5.3问世以来,没有人会修复这个"错误"。
它并不像你所寻找的那样明确(有没有一月不是第一个月的情况?),但这可以很好地回到PHP 5.2
$endDate = new DateTime('1st January Next Year');
echo $endDate->format('Y-m-d'); // 2017-01-01
https://3v4l.org/H5P8s