这不会将时间设置为午夜:
new DateTime('first day of -1 month midnight')
就好像 midnight
不存在一样。
在 PHP 7.3.33 和 PHP 8.2.4 中测试。
时间格式的文档不是很清楚。但即使我直接从中举一个例子,行为也会有所不同:
echo (new DateTime('yesterday noon'))->format('Y-m-d h:m');
不输出中午,分钟字段非零。
我把上面的内容改回谈论分钟。可以使用 i
访问,而不是 m
。我试图纠正它,但是,正如评论所示,我做得不正确,导致了混乱。 12 确实是 H
和 H
的中午。我指的是午夜 12 点。