php - PHP DateInterval 函数给出错误的周数结果
问题描述
我有一个循环,将给定日期添加一周,如下所示,
$db_date = '201849';
$year = substr($db_date, 0, 4);
$week = substr($db_date, 4);
$dateFromStr = new DateTime();
$dateFromStr->setISODate($year, $week);
if($dateFromStr){
for($b=0; $b < 27; $b++){
$calc_date = clone $dateFromStr;
$calc_date->add(new DateInterval("P" . $b . "W"));
$header_week = $calc_date->format("YW");
}
}
输出 :
201849,201850,201851,201852,201801,201902,201903 ,...., 201923
但正确的输出将是:
201849,201850,201851,201852,201901,201902,201903 ,...., 201923
我不知道为什么我得到201801
而不是201901
作为输出。
请帮我解决这个问题谢谢。
解决方案
我不知道为什么我得到 201801 而不是 201901 作为输出。
那是因为对应的日期是2018-12-31
。
如果您想要根据 ISO 周数的年份编号,则必须使用o
, not (在date()手动条目Y
中也提到了这一点)。
推荐阅读
- python - 将线轮廓仪与多处理一起使用
- visual-studio-2017 - 为什么 VS2017 CodedUI 测试刚刚停止工作
- android - 带有标签片段的片段后台堆栈
- excel - 如何将此下拉列表合并到我的程序代码 VBA 中
- python-3.x - Mypy 将类识别为函数
- django - 来自 DetailView 中类别的 url 路径
- javascript - 为什么我的数组缓冲区在服务器端是空的?
- c# - 如何从 XML 文档中获取值
- javascript - 为什么 Openerp7 JS 文件不能在 odoo v11 中工作,但在 odoo v10 中工作正常?
- python - Python从数组中绘制平行于y轴的线