Получить определенную дату недели после даты - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь реализовать процесс доставки, который происходит в определенные дни недели для каждого региона. Таким образом, в Регионе, который осуществляет доставку по вторникам и четвергам, я должен иметь возможность получить следующую подходящую дату на основе даты, когда продукт будет доступен. Итак, если я прочитаю это 5-го числа, O нужно получить дату следующего вторника или четверга.

Я начал реализовывать это на Carbon, но я и создавал множество циклов по датам, датам тестирования и проверке, действительны ли они. что-то вроде получения даты доступности продукта и проверки каждый день после него, если это понедельник, вторник или четверг ... и т. д. /// Я уверен, что, используя Carbon, будет лучший способ сделать это.

Любой намек на то, как это сделать?

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 03 сентября 2018

Определить дату:

$date = Carbon::now();

Теперь вы должны получить день:

$day = $date->dayOfWeekIso

Если $date - понедельник, то вы получите целое число, которое будет равно 1. Это потому, что: 1 (понедельник), 2 (вторник), ..., 7 (воскресенье).

Теперь, когда у вас есть этот номер, вам просто нужно применить простую логику.

Если полученное вами число равно 2 (вторник), вам нужно будет добавить два дня к вашему $date, чтобы получить дату доставки:

$delivery_date = $date->addDays(2);

Если ваш день равен 4 (четверг), то вам нужно добавить 6 дней к вашему $date, чтобы получить следующий вторник:

$delivery_date = $date->addDays(6);

Я думаю, это то, что вы хотите! Надеюсь, это поможет!

...