Срабатывание порога (временного) в различных GMT

Рейтинг: 2Ответов: 1Опубликовано: 16.11.2014

Доброго времени суток.

Завела в тупик задача со временем.

Есть порог времени (в часах), который задается пользователем и хранится в переменной $time_switch.
Например, в переменной $time_switch значение 8.
Тогда до наступления 08:00 (c 00:00 до 08:00 по местному времени, с учетом выбранного GMT) должно показываться значение из БД за вчера.

Местное время получаю примерно так:

$zone=3600*0 //GMT 
$date=gmdate("D M Y H:i", time() + $zone);

Сейчас все работает без этого порога и учета GMT таким образом:
Берется текущая дата через date("j"), выводится значение параметра, которое предписано сегодняшнему дню.
Из-за этого не учитывается время по GMT, "завтра" наступает в 00:00, а бывает необходимость показать значение за вчера до 09:00, например.

Надеюсь, правильно разъяснил.
Подскажите, как лучше реализовать учет переменной при выводе значения и местного GMT (оно может меняться от 0 до 7)?

Ответы

▲ 1

При запросе от клиента придётся делать лишний запрос: передавать текущее клиентское время, которое иначе никак не узнать. Напр., ajax'ом: клиент передаёт "у меня сейчас 9 утра", вы знаете, что порог для этого клиента 8 часов, и исходя из этого делаете запрос у себя в БД и возвращаете данные, которые опять же JS отрисовывает пользователю.