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)...
  • Вопрос задан
  • 265 просмотров
Пригласить эксперта
Ответы на вопрос 2
By_Engine
@By_Engine
Для сайта использовать единую зону. Например Лондона (utc 0). И для конкретного юзера смещать время
Ответ написан
miraage
@miraage
Старый прогер
date_default_timezone не влияет на time().

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽