Как дать услугу на один месяц?

Мне нужно написать на php скрипт. для предоставления услуги на месяц, схема принципиальная - тупо храним в БД время когда закончится услуга, а потом через if смотрим больше или нет. Я не понимаю как считать это время, какое время нужно хранить в БД? И как потом посчитать прошел месяц или нет, всем заранее спасибо!
  • Вопрос задан
  • 2430 просмотров
Решения вопроса 1
@andymitrich
Software Developer
Вы правильно начали: в БД храните точную дату окончания услуги. Как проверить, истекла она или нет? Ответ прост: cron. Cron-менеджер запускается с определенным интервалом и дергает заданный скрипт. В этом скрипте обращаетесь к БД, смотрите какие услуги истекли и выполняете соответствующие действия.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Лучше все же хранить не окончание, а начало. Потому что если вы решите предоставлять услуги не на месяц, а на два, то у тех покупок, которые были совершены ДО этого решения, дата окончания будет старая. А это не совсем корректно по отношению к пользователям. Дата начало предоставления услуги - в любом случае константная величина, а дата окончания - рассчитывается по формуле, которая может быть изменена.

На уровне SQL проверить это можно примерно так:
SELECT * FROM `...`
WHERE DATE_ADD(`date`, INTERVAL 1 MONTH) > NOW()
Ответ написан
disc
@disc
веб-разработчик
Можно попробовать просто указать в условии
WHERE date_out > CURRENT_TIMESTAMP
date_out - поле, которое хранит дату окончания
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы