passshift
@passshift
php, js, html5, css

Как правильно пользоваться php time()?

Здравствуйте!

Запутался напрочь с хранением времени пользовательских действий.

Изначально все построил таким образом: юзер заходит на сайт, логинится, скрипт определяет его IP и делает запрос к сервису geo-ip, тот возвращает временную зону, допустим Europe/Moscow, сохраняем в базу... (так при каждой авторизации)

В основном контроллере я задаю:
date_default_timezone_set($this->user->timezone);

habrahabr.ru/post/124297

И тут начинаются проблемы и путаницы, к примеру юзер пишат сообщение, скрипт сохраняет его в базу, в поле со временем записи заносит данные, полученные из time()

Получается результат time() будет построен на основании временной зону пользователя - Europe/Moscow, а не сервера и не UTC...

Как быть? Сдается мне с логикой я изначально прокололся конкретно. Сейчас вижу только один выход, перелопать тонну кода (модели с занесением информации в БД) и вставить туда строку:
date_default_timezone_set("UTC");

... хотя всеравно чувствую, что что-то здесь не так. Как сделать правильно и удобно?

наверное ошибкой было сохранять time() в поле INT(10)...
  • Вопрос задан
  • 267 просмотров
Пригласить эксперта
Ответы на вопрос 2
By_Engine
@By_Engine
Для сайта использовать единую зону. Например Лондона (utc 0). И для конкретного юзера смещать время
Ответ написан
miraage
@miraage
Старый прогер
date_default_timezone не влияет на time().

Она влияет на date(), strftime().
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы