首页 > 解决方案 > PHP日期格式化问题与周数

问题描述

我正在为我的前端提供每周报告。我正在接收日期间隔并返回按W-Y格式分块的数据(例如 02-2018)。例如,当我将 31.12.2018 作为间隔的开始日期时,就会出现问题。当我用W-Y模式格式化该日期时,结果是 01-2018,因为 31.12.2018 作为工作日“属于”2019 年,所以周数格式化程序给我 01,但作为一年得到 2018,这也是正确的。但是有一个问题,因为我的块必须是连续的,但现在我的数据看起来像这样:

{
  "01-2018": [...],
  "02-2019": [...],
  "03-2019": [...],
  .....
}

有什么建议如何设计所有这些吗?

标签: phpdateformattingdate-formattingphp-carbon

解决方案


o当您使用 ISO 周数时,您需要使用年份格式。从手册

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

echo (new DateTime('2018-12-31'))->format('W-o');

输出:

01-2019

推荐阅读