Intereting Posts

PHP и MySQL: сравнение месяца и дня с динамическим годом

У меня проблемы с приложением, над которым я работаю, и надеюсь получить некоторые рекомендации.

У меня есть простая система бронирования: каждый товар имеет стандартную цену, но есть некоторые периоды, когда цена может измениться.

Например:

  • Стандартная цена: 100 / день

  • С Oct. 1st Feb. 1st каждого года цена составляет 80 / день

  • С 1 Jun. 1st по Aug. 31st каждого года цена составляет 120 за день

  • […] до 6 различных изменений цен (сезонов)

Поскольку это ежегодное событие, мне нужен только месяц и день, но я не знаю, как сохранить эти значения в базе данных. Я думал о том, что у меня два поля: один на месяц и один на день, которые содержат числовые значения ( 01-12 за месяц, 01-31 за день). Эти значения задаются самим пользователем, и они относятся к самому элементу, это не исправлено для всех.

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

Следуя приведенному выше примеру, если я должен был заказать товар с Sep. 1st (current year) до 1 Jul. 1st (next year) , цена будет следующей:

  • 100 / день с Sep. 1st Sep. 30th

  • 80 / день с Oct. 1st Feb. 1st

  • 100 / день с Feb. 2nd to May 31st

  • 120 / день с 1 Jun. 1st Jul. 1st

Есть ли способ проверить эти случаи без необходимости цитировать каждый день и проверять базу данных для соответствия?

спасибо