Любые мысли о том, как анализировать неделю года и рассматривать отклонения, такие как 31.12.18 года, фактически являющаяся первой неделей 2019 года. Причина в том, что кто-то написал планировщик, который хранит даты следующим образом: 2017-W37-1
(year,буква W, фактический номер недели и фактический номер дня недели).Как это было написано, он уже сохранил более трехсот строк как 2018-W53
, которого даже нет в этом году.Я работаю с PHP / Laravel 5.4 и запустил метод weekOfYear
для фильтрации всех входящих дат из внешнего интерфейса.Flow является внешним интерфейсом, имеет средство выбора даты, отправляет дату в индекс, сохраняет и уничтожает методы и оттуда взаимодействует с таблицей расписаний, в которой есть столбец «date» в вышеуказанном формате (фактически строка obvs, а не date).Не существует резервной даты, поэтому он просто извлекает все расписания на неделю, основываясь на этой одной строке.Мой метод до сих пор:
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 год на самом деле более простой.