PHP/Laravel 5.4/Carbon——分析一年中的一周的可持续方法,考虑到每年的周数差异 关于如何解析一年中的一周,考虑今年的12/31/18的异常,实际上是2019周的1。原因是有人编写了一个存储日期的计划程序,如2017-W37-1年、字母W、实际周数和实际周数。按照它的编写方式,它已经存储了300多行作为2018-W53,这在今年甚至不存在。我正在使用PHP/Laravel5.4,我已经开始了一个weekOfYear方法,从前端过滤所有传入的日期。Flow is前端有一个日期选择器,向索引、存储和销毁方法发送日期,并从那里与schedules表交互,schedules表有一个上述格式的日期列,实际上是字符串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; }

PHP/Laravel 5.4/Carbon——分析一年中的一周的可持续方法,考虑到每年的周数差异 关于如何解析一年中的一周,考虑今年的12/31/18的异常,实际上是2019周的1。原因是有人编写了一个存储日期的计划程序,如2017-W37-1年、字母W、实际周数和实际周数。按照它的编写方式,它已经存储了300多行作为2018-W53,这在今年甚至不存在。我正在使用PHP/Laravel5.4,我已经开始了一个weekOfYear方法,从前端过滤所有传入的日期。Flow is前端有一个日期选择器,向索引、存储和销毁方法发送日期,并从那里与schedules表交互,schedules表有一个上述格式的日期列,实际上是字符串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; },php,laravel,date,laravel-5,laravel-5.4,Php,Laravel,Date,Laravel 5,Laravel 5.4,日数在进一步的方法中被标记,但我可能也会在这里添加它。这适用于2018年,但我更愿意以更灵活的方式解析日期,尽管2019年实际上更简单 只需使用$formattedDate=$date->format'o'.-W'.$date->format'W' 不确定你需要什么,但这对你有用吗$formattedDate=$date->format'o'.-W'.$date->format'W';?第53周不是标准周吗?我记得是这样的。这真的很有效,菲利浦!谢谢:@Andreas,我不确定,但我必须解决这个

日数在进一步的方法中被标记,但我可能也会在这里添加它。这适用于2018年,但我更愿意以更灵活的方式解析日期,尽管2019年实际上更简单

只需使用$formattedDate=$date->format'o'.-W'.$date->format'W'

不确定你需要什么,但这对你有用吗$formattedDate=$date->format'o'.-W'.$date->format'W';?第53周不是标准周吗?我记得是这样的。这真的很有效,菲利浦!谢谢:@Andreas,我不确定,但我必须解决这个问题,让调度程序重新启动并运行。现在,好几个星期都是空白的。没问题@MattLarson。我写了一个答案,你可以标记为接受,以帮助其他人解决同一问题。这种格式的文档在哪里?具有不同的代码。请检查此处:。o表示ISO-8601周编号年份。该值与Y值相同,只是如果ISO周数W属于上一年或下一年,则使用该年。在PHP5.1.0中添加