Скажите, пожалуйста, какое поле лучше использовать
timestamp [ without time zone ]
или
timestamptz [with time zone] ?
Обратила внимание, что для этих полей возвращается разное значение временной метки (количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) до текущего времени).
С чем это связано?
Задача состоит в следующем:
Необходимо сохранять дату в БД в едином часовом поясе для всех пользователей.
А выводить каждому пользователю дату, в соответствии с его часовым поясом.
Хочу реализовать, следующим образом:
1) Получать из БД дату в виде метки времени:
SELECT extract(epoch from date) as date_ts FROM table;
Но здесь, есть проблема:
Если указываю поле timestamp, то метка времени возвращается со смещением.
Например в ячейке записано:
20.03.2013 16:58:24
А метка времени возвращается = 1363798704, вместо 1363777104.
Вот почему так?
2) для каждого пользователя устанавливать его зону:
date_default_timezone_set('Europe/Moscow');
3) преобразовывать дату из БД следующим образом:
date('d.m.Y H:i:s', $row['date_ts']);
Скажите, пожалуйста, насколько это правильно?
_____________
Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)