Очень часто возникает задача, вывести время для пользователей из разных уголков планеты, которое соответствует их часовому поясу. К примеру, в своей php проекте, вы публикуете статью, новость или обзор и в базу данных записывается время создания (или время публикации материала) в каком-то формате, будь-то timestamp или форматированная дата. Обсудим, как можно реализовать обработку этой даты так, чтобы пользователю, который находится в другом часовом поясе дата публикации отобразилась соответствующая.
Правильная timezone на PHP
Представим, что вы опубликовали материал в 24 декабря 2013 года в 12:43. Другим пользователям, с другим часовым поясом выведется это же время и, соответственно, для кого-то это будет, как бы прошлое, для кого-то — будущее. Исправим этот недочет на стороне PHP.
$timeInDB = '2013-12-24 12:43:28'; $datetime = new DateTime($timeInDB); $timezone = new DateTimeZone('Europe/Paris'); $datetime->setTimeZone($timezone); print $datetime->format('Y-m-d H:i:s');
Единственная задача, это вычислять по IP адресу часовую зону пришедшего на сайт пользователя. Вторым вариантом решения будет использование таблиц часовых поясов в MySQL. Об этом я напишу в следующей статье.
Подписывайтесь на новости блоги и будьте в курсе последних публикаций