Как вывести время с учётом часового пояса в PHP


Как вывести время с учётом часового пояса в PHP Иногда требуется сделать такой сайт, на котором время будет подстраиваться под часовой пояс пользователя. Задача эта непростая в том плане, что определить часовой пояс пользователя проблемно. Поэтому выводят в 99% случаев время, соответствующее серверному часовому поясу. Но давайте с Вами разберём, как всё-таки можно вывести время с учётом временной зоны конкретного пользователя. Как я уже написал, определить часовой пояс пользователя сложно, об этом мы поговорим в следующей статье. А пока что будем считать, что мы уже знаем временное смещение относительно серверного времени. Лучше всего будет поставить серверное время по Гринвичу. И сохранять надо все данные со временем именно по Гринвичу. Я уже когда-то писал, что хранить надо в той же базе данных не строковый формат даты и времени, а числовой, то есть тот, который возвращается функцией time(). Давайте с Вами разберём небольшой код: <?php date_default_timezone_set("UTC"); // Устанавливаем часовой пояс по Гринвичу $time = time(); // Вот это значение отправляем в базу $offset = 3; // Допустим, у пользователя смещение относительно Гринвича составляет +3 часа $time += 3 * 3600; // Добавляем 3 часа к времени по Гринвичу echo date("Y-m-d H:i:s", $time); // Выводим время пользователя, согласно его часовому поясу ?> Примерно так и работает вывод времени с учётом часового пояса пользователя на PHP. Безусловно, можно и не ставить по умолчанию время по Гринвичу, а узнавать смещение относительно серверного времени. Впрочем, о смещении мы с Вами поговорим в следующей статье.