首页 > 解决方案 > 2021 年初日期的 PHP 日期错误

问题描述

当我从时间戳打印日期时,我得到以下结果:

$date = "2021-01-03 10:45:06";
echo date('M j, o', strtotime($date)); // prints Jan 3, 2020, when it should say Jan 3, 2021

$date = "2021-01-04 10:45:06";
echo date('M j, o', strtotime($date)); // prints Jan 4, 2021, which is expected

出于某种原因,第一个日期的年份显示为 2020 而不是 2021。我使用的是 PHP 版本 7.1.33

标签: phpdate

解决方案


手册中,o格式化选项:

ISO-8601 周编号年份。这与 Y 具有相同的值,除了如果 ISO 周数 (W) 属于上一年或下一年,则使用那一年。

2021 年 1 月 3 日所在的 ISO 周为 2020 ISO 年。

为避免此问题,(除非您专门使用 ISO 日期)使用Y格式选项。


推荐阅读