Я пытаюсь вычислить две даты: дату за неделю до и дату через восемь недель после дня рождения пользователя.
В нашем примере мы хотели бы предоставить пользователю доступ к некоторым событиям в период его рождения.
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
Кто-нибудь пытался сделать что-то подобное и может помочь мне привести какой-нибудь простой пример — зажечь лампочку над моей головой?
Это может быть легко достигнуто с Углеродная библиотека.
$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
И тогда вам не придется иметь дело с сумасшедшими манипуляциями с датами, что является огромной болью.
Других решений пока нет …