Вывод времени создания записи в БД в зависимости от временной зоны пользователя?
Доброго времени суток!
Интересует следующий вопрос.
Имеется таблица в БД для хранения постов блога. В ней есть поле типа datetime, в котором хранится время создания поста в таком формате: 2016-02-12 18:50:51. По-умолчанию на сайте установлен часовой пояс Europe/Moscow. Также каждый пользователь в настройках профиля может выбирать свою временную зону.
Возможно ли как-то вывести список постов, у которых время создания будет соответствовать временной зоне пользователя?
Заранее благодарен за ответ!
Здесь в конце времени timezone MSK добавляется вручную. А каким образом можно данный параметр получить в зависимости от того, какая временная зона была у юзера, который добавил пост?
MSK это временная зона сервера, точнее временная зона, в которой лежат данные в БД. Временная зона пользователя это Pacific/Nauru. Или я, возможно, не правильно понял задачу.
Я имел в виду, что вдруг, например, на сайте был добавлен пост от пользователя, у которого часовой пояс в профиле Europe/Madrid. А просматривает в данный момент этот пост житель Москвы. То есть здесь '2016-02-12 18:50:51'.' MSK' в конце вместо MSK должен стоять другой параметр. Поэтому и хотел узнать, как его определить. Иле же можно просто написать '2016-02-12 18:50:51'.' Europe/Madrid'?
В базе то у вас какая дата, точнее как она добавляется. Она добавляется через insert ... date=NOW() или как там появляется дата во временной зоне отличной от системной?
Хотел еще также уточнить. Что делать с московским временем, которое выдаёт php? Так как официально часовой пояс +4, а на самом то деле +2. И php показывает именно официальную версию.
Значит в системе время не московское и MSK надо заменить на что-то, где пояс +2. В Москве сейчас +3, если я ничего не пропустил. Попробуйте сделать так:
$ts = strtotime('2016-02-12 18:50:51'.' '.date('T'));
Должен подставляться текущий системный часовой пояс, а его уже можно преобразовать в "Europe/Moscow". При условии, что Europe/Moscow = +3, а не +4 или вообще с переходом на зимнее.
Mysql timestamp сохраняет и хранит в UTC но вывод делать из настроек системы
По умолчанию всегда идет система -> конфиг -> запрос set timezone = '+3:00'
Думаю правильно будет задавать часовой поиск из скрипта для php потом mysql