Запутался с временными поясами

а как конвертировать timestamp, не могу найти?

Можно преобразовать в нужный формат функцией date() Для просмотра ссылки Войди или Зарегистрируйся

Если прибавить/убавить пару часов то так:

$date_rfc2822 = '2011-10-18T19:56:00+0200'; // TIMESTAMP из базы сюда
$dateTime = DateTime::createFromFormat("Y-m-d\TH:i:sO", $date_rfc2822);
echo date('G:i', strtotime('+2 hours', $dateTime->getTimestamp()));

в функцию strtotime первым аргументом насколько сдвинуть время от метки
 
Вернулся к проблеме, которую все равно не могу понять, точнее принцип работы с датами и часовыми поясами.
Например, есть сервер по московскому времени (+3 часа), есть пользователь из Калининграда (+2часа), и пользователь и из Магадана (+11 часов).
У сайта задан часовой пояс по умолчанию +3 (по МСК).
Из Магадана добавил пост. Из Калининграда посмотрел его (в базу сохранилось время просмотра), и добавил комментарий (время коммента сохранилось). Далее, из Магадана пользователь пост посмотрел, увидел коммент и его время.
Дак вот и вопросы:
1. какое время поста сохранять в БД?
2. какое время поста выводить у автора поста?
3. какое время поста выводить для посетителя из Калининграда?
4. Какое время просмотра поста сохранять в БД?
5. Какое время добавления коммента сохранять в БД?
6. какое время коммента выводить пользователю из Магадана?
и т.п.
 
сайт будет всем показывать даты в московском времени, независимо кто смотрит, калининград или магадан

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

соответсвенно и время добавления записей будет указываться московское
а смысл в поясе?
Я, например, из Магадана добавлю пост. У меня показывает 20:00. После добавления дата будет 09:00. Что неправильно же...
 
да, наш мир жесток и не совершенен)))
если хотите чтобы у каждого отображалось свое время - выводите на сайте всемирное время, а у клиента с помощью javascript получайте локальное
 
да, наш мир жесток и не совершенен)))
если хотите чтобы у каждого отображалось свое время - выводите на сайте всемирное время, а у клиента с помощью javascript получайте локальное
ну а в чем задача часового пояса тогда?
 
проблема часовых поясов наблюдается если время в базе хранится в числовом формате (количество секунд с 1 января 1970 года)
тогда для разных часовых поясов преобразование числового формата даст разное время

а сели вы храните время в формате DATETIME (YYYY-mm-dd H:i:s) тогда эта проблема отпадает сама собой
 
проблема часовых поясов наблюдается если время в базе хранится в числовом формате (количество секунд с 1 января 1970 года)
тогда для разных часовых поясов преобразование числового формата даст разное время

а сели вы храните время в формате DATETIME (YYYY-mm-dd H:i:s) тогда эта проблема отпадает сама собой
ну тогда могу пояснить, что у меня datestamp, т.е. кол-во секунд указано. А даже если и datetime, то получаетя, что я буду видеть дату поста из магадана, которая еще не наступила для калининграда.
 
если не нравится JS, есть вариант с PHP
Для просмотра ссылки Войди или Зарегистрируйся

узнаем какой часовой пояс у клиента по его IP
устанавливаем текущий часовой пояс через функцию date_default_timezone_set()
а далее выводим в нужном формате дату
 
Назад
Сверху