Главная->Уроки по php->Как определить часовой пояс

Как определить часовой пояс

21 Фев в 00:56

Как определить часовой пояс В предыдущей статье я рассказывал: как вывести время с учётом часового пояса пользователя. Ничего сложного там не было, однако, главная трудность - это определить смещение по времени. Поэтому в этой статье я расскажу, как определить часовой пояс пользователя. Существует несколько методов, давайте их разберём: Определить по IP. Самый плохой способ, поскольку не всегда по IP можно определить даже страну, не говоря уже о городе. Вдобавок, нужно будет держать информацию о часовом поясе для каждого города мира. Попросить пользователя указать свой часовой пояс. Самый частоиспользуемый способ. Как правило, часовой пояс запрашивают при регистрации пользователя на сайте. А зная часовой пояс пользователя, можно без проблем узнать смещение относительно базового времени сервера, а дальше всё написано в предыдущей статье. Узнать через JavaScript. Самый оригинальный способ. В данном способе надо, используя объект Date, отправить на сервер информацию (как отправлять данные написано здесь) о текущем часе пользователя. Далее на сервере надо посчитать разницу между текущим часом базового времени на сервере и тем часом, что пришёл от пользователя. Далее сохранить в cookie или сессию это смещение. Вот и всё. Почему работает 3-й способ? Всё потому, что JavaScript - это клиентский язык, который показывает время на компьютере пользователя, а не на сервере. Поэтому мы отправляем на сервер именно текущее время пользователя, в котором уже учтён часовой пояс. Ведь нам же нужен не часовой пояс, а всего лишь смещение. Как видите, нет ничего невозможного, и определить часовой пояс пользователя не так уж и трудно, а уж узнать смещение по времени, а только оно обычно и требуется, вообще, легко.