日期时间不可更改的今年第一天

时间:2019-10-17 12:31:11

标签: php date

我想获得今年的第一天,如2019/01/01。

使用此代码:

new \DateTimeImmutable('first day of this year'));

但是我得到的是 2019/10/01 ,看来还是要返回本月的第一天吗?

1 个答案:

答案 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

Demo on 3v4l.org