2010-05-18 3 views
19

UNIX timestamp всегда в GMT?Временная метка UNIX всегда в GMT?

Я попытался запустить PHP время() функции

и когда я попытался преобразовать метку времени Unix от функции времени(), вывод не похож на компьютерное время.

Спасибо

+0

Значение, которое было возвращено с time() по местному времени. Что вы используете для отображения значения? –

+0

Политически правильное время, конечно, UTC, так как Гринвич больше не является центром империи. Ну, это, вероятно, так, но империя не такая большая, как когда-то была :-) – paxdiablo

+1

Значение, возвращаемое из time(), - это количество секунд с даты эпохи. Сам по себе он не имеет часовой пояс.При преобразовании в форму календаря, то есть когда часовой пояс применяется (или не применяется) к значению. –

ответ

36

Дa, UNIX метка времени представляет сколько секунд прошлое от Unix-времени эпохи в GMT+0

+38

Вы ошибаетесь: это GMT + 0! : P –

+15

вся моя жизнь была ложью –

7

UNIX метка времени (эпоха AKA Unix в) означает, истекших секунд с 1 января 1970 00:00:00 UTC (Универсальное время). Итак, если вам нужно время в определенном TimeZone, вы должны его преобразовать.

Даже если это технически возможно, я бы рекомендовал альтернативные способы получить текущее время (или любое другое время), например getdate, которое уже учитывает местный часовой пояс перед возвратом.

+1

'time()' также учитывает местный часовой пояс – zerkms

+4

@zerkms Не в соответствии с документацией: http://php.net/manual/en/function.time.php –

+3

yep, my ошибка. – zerkms

6

Да, time должен возвращать UTC. Если вы хотите, чтобы это преобразовалось в местное время, вам нужна функция, например, ..., хм, позвольте мне подумать, да, это все, localtime :-)

Это даст вам более удобную форму с отдельные поля вспыхнули.

Следуйте за этими ссылками выше для каждого документа PHP. Не уверен, что PHP имеет эквивалент gmtime.


И, как в сторону, быть очень осторожным поиска в Интернете для time с man time страницы руководства - вы не можете получить то, что вы ожидаете. Вы конечно не получите то, что ожидаете, если вы ищете справочную страницу для man себя: man man.

То есть, если вы не ищете различные вещи, чем я :-)

0

Проверьте возвращаемое значение date_default_timezone_get(), чтобы увидеть, что часовой пояс по умолчанию. В ссылке также перечислены способы изменения значения, предпочтительного существа, путем установки date.timezone в php.ini.

2

Технически, нет.

Несмотря на то, что время эпохи - это истекшие секунды с 1/1/70 00:00:00настоящий «GMT» (UTC) нет.

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

Как все писали, большинство людей используют эпоху в UTC.

Вы можете узнать больше в https://en.wikipedia.org/wiki/Unix_time.

Смежные вопросы