Метка времени UNIX всегда в GMT?
Временная метка UNIX всегда в GMT?
Я попытался запустить php-функцию time()
И когда я попытался преобразовать временную метку unix из функции time(), результат не похож на компьютерное время.
Спасибо
5 answers
Да, временная метка UNIX показывает, сколько секунд прошло с эпохи unix в GMT+0
Метка времени UNIX (эпоха A.K.A. Unix) означает прошедшие секунды с 1 января 1970 года 00:00:00 UTC (Универсальное время). Поэтому, если вам нужно время в определенном часовом поясе, вы должны преобразовать его.
Несмотря на то, что это технически возможно, я бы рекомендовал альтернативные способы получения текущего времени (или любого другого времени), такие как getdate
это уже учитывает местный часовой пояс перед возвращением.
Да, time
предполагается вернуть UTC. Если вы хотите, чтобы это было переведено в местное время, вам нужна такая функция, как..., хм, дайте мне подумать..., да, вот и все, localtime
:-)
Это даст вам более удобную форму с выделенными отдельными полями.
Перейдите по приведенным выше ссылкам для документа PHP на каждом из них. Не уверен, что PHP имеет эквивалент gmtime
.
И, кроме того, будьте очень осторожны при поиске в Интернете справочной страницы time
с man time
- вы может не получиться то, что вы ожидаете. Вы определенно не получите того, что ожидаете, если ищете справочную страницу для man
самой: man man
.
То есть, если только вы не ищете другие вещи, чем я:-)
Технически, нет.
Несмотря на то, что время эпохи - это время, прошедшее с момента 1/1/70 00:00:00
, реального "GMT" (UTC) нет.
UTC время необходимо было изменить несколько раз, чтобы учесть замедление скорости вращения Земли.
Как все писали, большинство людей используют epoch в UTC.
Вы можете прочитать больше в https://en.wikipedia.org/wiki/Unix_time.
Проверьте возвращаемое значение date_default_timezone_get(), чтобы узнать, какой часовой пояс по умолчанию. В ссылке также перечислены способы изменения значения, предпочтительным из которых является установка date.timezone в php.ini.