php - date() 为一年中的第一天返回错误的周数
问题描述
不知何故,函数的返回值在date()
这里毫无意义。有人知道为什么吗?
也许我遗漏了一些东西,但根据 PHP 手册,以下内容没有意义:
echo date('W', strtotime("2021-01-01"));
输出:
53
一年的第一天不应该在第 1 周吗?其他日期似乎也被打破(例如2021-01-05
返回01
)。我检查了输出,strtotime()
但 UNIX 时间戳似乎是正确的。我在这里想念什么?
解决方案
PHP 的DateTime 格式文档:
W - ISO-8601 年的周数,从星期一开始的周数
ISO-8601 对一年中第一周的定义:
周从星期一开始,到星期日结束。每周的年份是星期四所在的公历年。因此,一年的第一周总是包含4 January。
它返回 53,因为 01/01/2021 是在 2020 年的第 53 周。
如果你这样做
echo date('W', strtotime("2021-01-04")); // first Monday of year 2021
它会回来01
推荐阅读
- python-3.x - 如何解决不同 CPU 类型的 DLL 模块?
- python - 在 Python 中创建 numPy 数组时保留引用
- javascript - 向移动菜单添加下拉和折叠功能
- google-chrome - 是否可以在 Chrome 调试器中搜索元素?
- firebase - 使用 Firestore 离线缓存的 SaaS 应用程序
- windows - Dockerfile:复制/添加路径中的空格字符(Windows)
- c++ - 将指向 X 的指针转换为 X 的数组
- javascript - React Hooks 滚动到元素
- asp.net-mvc-4 - 如何将自定义参数传递给授权策略
- python - 不使用 ord、chr 和循环的凯撒密码