Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Часовые пояса и временные зоны

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
StasHappy
Отправлено: 28 Мая, 2014 - 13:17:04
Post Id


Новичок


Покинул форум
Сообщений всего: 56
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Привет парни.

У меня есть вопрос относительно временных зон. Недавно обнаружил, что записываю в БД время, не учитывая временную зон. В итоге, Вася из Петербурга, на странице видит такое же время, как и Петя из Лондона. Я эту проблему исправил. Записываю в БД значение timestamp. И в последствии, вывожу его на страницу, учитывая при этом временную зону пользователя.

Примерно так:

PHP:
скопировать код в буфер обмена
  1. // запрашиваю временную зону в настройках пользователя
  2. $timezone = $get_user_setting['timezone'];
  3. // устанавливаю её для текущего скрипта
  4.  
  5. // получаю время когда было отправлено сообщение
  6. $get_timestamp = "1401186976";
  7. // дата сообщения
  8. $date = date("d.m.Y", $get_timestamp);
  9. // время сообщения
  10. $time = date("H:i", $get_timestamp);


Хотелось бы разобраться с пользовательскими настройками профиля. Хочу добавить туда настройку часовых поясов. Но в БД, я храню не часовой пояс, а временную зону например такого вида Europe/Moscow.

Вопрос.

Как на основе часового пояса, выбрать для пользователя конкретную для него временную зону?
 
 Top
Zuldek
Отправлено: 28 Мая, 2014 - 16:22:22
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




У вас с математикой проблемы?
Вы не можете, зная в какой временной зоне находится ваш сервер, посчитать какое время показывать юзеру, зная его часовой пояс?
Если храните дату вместе с временной зоной, то всё ещё проще через DateTime

(Отредактировано автором: 28 Мая, 2014 - 16:30:17)

 
 Top
StasHappy
Отправлено: 29 Мая, 2014 - 17:08:31
Post Id


Новичок


Покинул форум
Сообщений всего: 56
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Цитата:
Вы не можете, зная в какой временной зоне находится ваш сервер, посчитать какое время показывать юзеру, зная его часовой пояс?

Вот этого знания мне не хватало, чтобы решить свою проблему. Спасибо за мысль. Остальное я сделаю сам.

(Отредактировано автором: 29 Мая, 2014 - 17:10:02)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB