Временные зоны, php

А
На сайте с 27.08.2013
Offline
110
699

Доброго дня!

Подскажите как в php реализовать разные временные зоны? Приведу пример:

Добавлена новая новость на сайте. В Самаре она добавлена 06.01.2018, 12:05. Пользователь из Москвы должен увидеть время новости 06.01.2018, 11:05

Думал написать скрипт который смотрит на IP и присваивает ему геолокацию. Исходя из этого и устанавливает нужное время. Но почему-то эта идея мне не нравится. Может есть более простое решение?

makag
На сайте с 01.05.2013
Offline
106
#1

можно смотреть локальное время у пользователя на ПК, через javascript

а дальше от этого плясать. но это так, предположение.

LEOnidUKG
На сайте с 25.11.2006
Offline
1766
#2

Даты переводить в формат UNIX и так выводить через JavaScript

https://habrahabr.ru/post/264657/

Или просто преобразовывать уже готовые через Javascript, но там надо будет туда сюда переформатировать.

Но локально это делать по IP глупость. IP меняются и базы надо будет обновлять периодически.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Joker-jar
На сайте с 26.08.2010
Offline
167
#3

Выводить в GMT, а уже при помощи JS прибавлять/отнимать часовой пояс. Либо можно и на серверной стороне формировать корректную дату, но тогда нужно передать часовой пояс посетителя (например в куки с помощью того же JS, либо, если это подразумевает структура сайта, в настройках профиля).

---------- Добавлено 07.01.2018 в 01:20 ----------

Вообще, вывод дат - это цветочки. Самое интересное начинается, когда встает задача формировать какой-то контент на основе выборок из БД. Например "заявки за сегодня". У кого-то это "сегодня" только наступило, у кого-то почти прошло. А формат хранения данных в базе един. В общем, развлекайтесь :)

А
На сайте с 27.08.2013
Offline
110
#4

Ок, немного другой вопрос. Может сможете подсказать. Вот так на php я вывожу время. Соответственно это время сервера

echo date('d-m-Y, H:i', "1515254019")

//результат 06-01-2018, 19:53

В данном случае мы взяли время из БД 1515254019.

По этой же аналогии можно вывести время на JS?

LEOnidUKG
На сайте с 25.11.2006
Offline
1766
#5
Айратиус:
Ок, немного другой вопрос. Может сможете подсказать. Вот так на php я вывожу время. Соответственно это время сервера

echo date('d-m-Y, H:i', "1515254019")

//результат 06-01-2018, 19:53


В данном случае мы взяли время из БД 1515254019.

По этой же аналогии можно вывести время на JS?

Именно так. Я дал вам ссылку на хабр там уже готовый год.

[umka]
На сайте с 25.05.2008
Offline
456
#6

Можно просто установить нужный часовой пояс при соединении с БД, и чудесным образом все выводимые даты будут сразу в нужном поясе.

Это, конечно, при условии, что они хранятся в виде timestamp-ов.

Лог в помощь!
А
На сайте с 27.08.2013
Offline
110
#7

Перемудрил

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий