В основном у меня есть сайт, который позволяет магазинам хранить время их открытия / закрытия.
Теперь я пытаюсь добавить функцию, позволяющую посетителям видеть, закрыт ли магазин.
Я понимаю, что могу выполнить запрос вроде:
SELECT * FROM `store_hours` WHERE TIME(NOW()) BETWEEN `opens` AND `closes`
... и запрос работает и извлекает магазины, которые в данный момент открыты. Однако сначала этот запрос не учитывал часовой пояс магазина.
ТАК .. Я решил сохранить время открытия / закрытия магазина с привязкой к конвертации в UTC:
id | store_id | открывает | закрывается | utc_opens | utc_closes
Теперь я могу запросить примерно так:
SELECT * FROM `store_hours` WHERE TIME(NOW()) BETWEEN `utc_opens` AND `utc_closes`
Так что теперь я могу легко получить глобальный список того, сколько магазинов открыто, и даже неважно, где они находятся.
Теперь я пришел к этой проблеме. Через PHP все, что я делал, это добавлял смещение к отметке времени:
date('H:i', strtotime($values['closes']) + $offset)
Затем я начал думать о тихоокеанском стандартном времени, а затем о летнем времени.
Я хочу добавить эту функцию открытия / закрытия, и она станет огромной частью системы. Просто я потеряю много дохода, если уйду на час.