php - PHP/Laravel 5.4/Carbon - 解析一年中一周的可持续方式,考虑到每年的周数差异
问题描述
关于如何解析一年中的一周并考虑异常情况的任何想法,例如今年的 12/31/18 实际上是 2019 年的第 1 周。原因是有人编写了一个调度程序来存储如下日期:(2017-W37-1
年份,字母 W,实际周周数和实际天数)。按照它的编写方式,它已经存储了三百多行2018-W53
,今年甚至不存在。我正在使用 PHP/Laravel 5.4 并且我已经开始了weekOfYear
从前端过滤所有传入日期的方法。流程是前端有一个日期选择器,将日期发送到索引,存储和销毁方法并从那里与时间表表进行交互,该表有一个上述格式的“日期”列(实际上是字符串 obvs 而不是日期)。没有回退日期,因此它只是根据该字符串提取一周的所有时间表。到目前为止我的方法:
public function weekOfYear($date)
{
$date = Carbon::parse($date);
$formattedDate = $date->year.'-W'.$date->weekOfYear;
if ($date->format('Y-m-d') === '2018-12-31') {
$formattedDate = '2019-W01';
}
return $formattedDate;
}
天数在其他方法中被标记,但我可能也会在这里添加。这适用于 2018 年,但我宁愿以更灵活的方式解析日期,尽管 2019 年实际上更简单。
解决方案
只需使用$formattedDate = $date->format('o').'-W'.$date->format('W');
推荐阅读
- sorting - 谷歌表格 - 数组公式后排序
- javascript - D3 中的 Choropleth 地图现在失败了
- python - 类型错误:load_pem_private_key() 缺少 1 个必需的位置参数:“后端”
- excel - 创建邮件并将焦点设置到此窗口
- html - Bi-directional CSS height animation
- git - 从远程删除未引用的对象
- dart - Intellij Dart Webdev 找不到“devtools0.9.7+1/build”
- twitter - 如何使用 Twitter API 按位置过滤推文
- c# - ASP.NET Core 3.1 HttpContext ObjectDisposedException 或 HttpContext 变为 null
- arrays - 为什么从这个数组打印超过 2 个值会导致错误?