Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > date c параметром timestamp и без |
Автор: flashaa 10.1.2008, 14:12 |
Недавно натолкнулся вот на что. Получаю кое-какой таймстамп (для пример он будет равен 600 = 10 минут), затем вывожу его, вот так: date('H-i-s', $timestamp); И получаю 03-10-00, т.е. 3 часа откуда-то взялись. Это смещение от GMT, но вопрос вот в чем: почему тогда date без timestamp-параметра cдвига GMT не происходит? date('H-i-s') - выводит мое локальное время и не прибавляет 3 часа. Путаница ведь какая-то. |
Автор: SqueeZe 10.1.2008, 14:42 |
Используй функцию gmdate() - параметры те же, что и у date(), но время по Гринвичу. |
Автор: MoLeX 10.1.2008, 14:48 | ||
|
Автор: SqueeZe 10.1.2008, 16:06 | ||||||
А когда используются отрицательные значения timestamp??? Никогда с таким не встречался. Ага. Проверил такой код:
Вывело "23:50:00", те получается, что он минусует от 24:00:00... интересно. Между прочим, как я понимаю замечание у меня не сработало, те видимо этот баг уже устранен. |
Автор: MoLeX 10.1.2008, 16:13 |
SqueeZe не знаю), вот и привел отрывок из манула (не из головы выдумал я) |
Автор: flashaa 10.1.2008, 22:12 |
Насколько я понял локальный time() всегда формируется с учетом гринвича. Т.е. если сервер расположен в московской зоне, то time() сгенерирует метку на 3 часа большую чем реальное текущее московское время ) А если выведем date('H:i'), то парсер преобразует текущее время с учетом сдвига по GMT, т.е. смотрит чему равен этот сдвиг и вычитает его... потому каждый, запуская date() у себя на локальной машине видит "свое" время, в какой часовой зоне он не находился. При этом численные значения меток timestamp, означающих одно и то же время но в разных часовых поясах, - разные. |
Автор: SelenIT 11.1.2008, 00:34 | ||
Логично - по определению Unix timestamp-а, отсчет которого ведется именно с полуночи по Гринвичу. Хотя помню, как в свое время сам с этим намучился, так что назвать это "очевидным" не берусь ![]() |
Автор: flashaa 11.1.2008, 11:52 |
Да, для меня было не очень очевидно, что как при генерации, так и при парсинге timestamp сервер опирается на свою временную зону. |