PHP / Laravel 5.4 / Carbon - устойчивый способ анализа недели в году с учетом различий в числах от года к году - PullRequest
0 голосов
/ 29 ноября 2018

Любые мысли о том, как анализировать неделю года и рассматривать отклонения, такие как 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 год на самом деле более простой.

1 Ответ

0 голосов
/ 29 ноября 2018

Просто используйте $formattedDate = $date->format('o').'-W'.$date->format('W');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...