Получить верхнюю и нижнюю дату диапазонов для дня рождения в Stack Overflow

Я пытаюсь вычислить две даты: дату за неделю до и дату через восемь недель после дня рождения пользователя.

В нашем примере мы хотели бы предоставить пользователю доступ к некоторым событиям в период его рождения.
1 неделя до его дня рождения
до тех пор
8 недель после его дня рождения

e.g. #1

User birthday: 1988-01-05
Timeframe should be: YYYY-12-29 to YYYY-03-03

Current Date:
1) 2016-12-30
2) 2017-01-01
3) 2017-02-01
4) 2016-12-28
5) 2017-12-28

Result should be:
1) True
2) True
3) True
4) False
5) False

e.g. #2
User birthday: 1988-12-30
Timeframe should be: YYYY-12-23 to YYYY-02-24

Current Date:
1) 2016-12-30
2) 2017-01-01
3) 2017-02-01
4) 2016-12-28
5) 2017-12-28

Result should be:
1) True
2) True
3) True
4) True
5) True

Кто-нибудь пытался сделать что-то подобное и может помочь мне привести какой-нибудь простой пример — зажечь лампочку над моей головой?

0

Решение

Это может быть легко достигнуто с Углеродная библиотека.

$dt = Carbon::create(1991, 1, 31, 0); // Set the birthday
$dt->addWeeks(8); // Gives you a date 8 weeks after
$dt->subWeek(); // Gives you a date 1 week before

И тогда вам не придется иметь дело с сумасшедшими манипуляциями с датами, что является огромной болью.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]