Как хранить пользовательский часовой пояс в mysql?

Возможный дубликат:
Тип данных / структура для хранения часовых поясов в MySQL

Я буду хранить только время UTC в моей базе данных и хочу преобразовать временные метки в локальное время пользователя с помощью PHP.

Мой вопрос: какой лучший способ хранить часовой пояс пользователей в базе данных?

IE: -400, -4, -4: 00

С учетом сказанного я знаю, как выполнять математику вручную:

$utc_time = strtotime("2011-10-02 23:00:00"); $my_time = $utc_time - 14400; echo date($timeformat, $mytime); 

Моя проблема заключается в том, что часовой пояс пользователя извлекается из базы данных, я не знаю, буду ли я добавлять или вычитать секунды. Вот где я столкнулся с проблемой попытаться выяснить, как сохранить часовой пояс, чтобы я мог рассчитать смещение.

Я могу сохранить часовой пояс как «-14400», но, используя приведенный выше пример, я не могу просто объединить две строки, чтобы выполнить математику для меня, используя знак:

 $my_time = $utc_time.$timezone; 

Итак … как правильно сохранить часовой пояс, чтобы получить математику?

Часовой пояс в одном месте не всегда одинаковый – например, Великобритания – BST (GMT + 1) в период с марта по октябрь. Используйте один из часовых поясов, поддерживаемых PHP:

http://php.net/manual/en/timezones.php

Если вы продолжаете использовать цифры, храните их как часы или минуты. Храните временные интервалы к западу от UTC / GMT как отрицательные числа. Например, Восточное побережье США будет составлять -5 (часы) или -300 (минут) – при условии, что он отстает на 5 часов.

Затем добавьте это в метку времени – отрицательное или положительное будет обрабатывать остальные.

 // for 5 hours behind when stored as hours (-5) $now = time() + ($offset * 60 * 60); // for 5 hours behind when stored as minutes (-300) $now = time() + ($offset * 60); 

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

http://www.php.net/manual/en/class.datetime.php

http://www.php.net/manual/en/class.datetimezone.php

для математики даты / времени:

http://www.php.net/manual/en/class.dateinterval.php

http://www.php.net/manual/en/class.dateperiod.php

прекратите использование php-функций, oop-классы намного лучше!

Вместо того, чтобы хранить его как строку, сохраните его как число? Затем вы можете просто добавить этот номер в метку времени. (Число может быть отрицательным для часовых поясов, которые будут вычитаться.)