к ночи тяжко уже сообразить.
Есть заданное число $validPeriod - срок действия тарифа в днях. Скажем, 10.
Есть стандартное поле created_at.
Как высчитать, сколько осталось действовать тарифу, который начал действовать в created_at и будет действовать 10 дней с начала этого датавремени? Помогите, пожалуйста. В Ларавел наверняка это в пару методов сделать можно.
потому что нужно было сохранять в базу сразу дату истечения, было бы проще жить)
Хорошо, тогда как мы будем это делать? Скажем, юзер переходит на определённый тариф, стартовая точка - now(), в тарифе 30 дней действия, тогда что я записываю в поле expiration_at и как делаю проверку на актуальность, к которой, кстати, ещё нужно показать, сколько осталось дней до истечения действия тарифа. Думаю, именно показывать дни, не заморачиваться с часами и минутами?
ну тогда бы код выглядел бы чуть короче, чем я написал) ну и из базы можно было бы запросы попроще дергать, чуть что
Хорошо, давай попробуем порешать. 1. Итак. Первое - делаю в таблице поле expirattion_at, тип DateTime. 2. Метод активации тарифа, в это поле нужно записать значение истечения действия тарифа. Пишем: UserMode::where(...)->update(['expiration_at' => $expiration_at]}. Осталось вычислить $expiration_at - помогай, интерфейс карбона подключен 3. Контроллер отображения страницы юзера, на страницу нужно передать переменную $days_left, содержащую количество оставшихся дней действия тарифа, зная now() и $expiration_at. Тоже подсказывай, как будем её делать 4. Ещё один контроллер, в котором нужно определить, действует ли тариф, зная now() и $expiration_at
Обсуждают сегодня