我想获得今年的第一天,如2019/01/01。
使用此代码:
new \DateTimeImmutable('first day of this year'));
但是我得到的是 2019/10/01 ,看来还是要返回本月的第一天吗?
答案 0 :(得分:1)
它是日期字符串解析的变数之一,“第一天”仅适用于一个月(请参阅manual)。您可以改用以下方式:
echo (new \DateTimeImmutable('January 1'))->format('Y-m-d') . PHP_EOL;
echo (new \DateTimeImmutable('first day of January'))->format('Y-m-d') . PHP_EOL;
输出:
2019-01-01
2019-01-01
请注意,您也可以写
echo (new \DateTimeImmutable('first day of january this year'))->format('Y-m-d') . PHP_EOL;
尽管“今年”部分是多余的,因为任何未明确提及年份的日期/时间表达式都将引用当前年份。这种形式的表达式在以下情况下更有用:
echo (new \DateTimeImmutable('first day of january last year'))->format('Y-m-d') . PHP_EOL;
echo (new \DateTimeImmutable('first day of january next year'))->format('Y-m-d') . PHP_EOL;
输出:
2018-01-01
2020-01-01