Преобразование метки времени UNIX в форматированную строку даты


183

Используя PHP, я хочу преобразовать метки времени UNIX в строки даты, подобные этой: 2008-07-17T09:24:17Z

Как мне преобразовать метку времени, например, 1333699439в 2008-07-17T09:24:17Z?

Ответы:


321

Попробуйте gmdateвот так:

<?php
$timestamp=1333699439;
echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);
?>

53
Пожалуйста, не gmdate()возвращайте дату / время в GMT. date()вернет местную дату / время.
Мэтт К

5
Выше комментарий не имеет смысла в этом контексте. Использование даты со вторым параметром в качестве метки времени, как показано в ответе, не будет печатать дату в местном часовом поясе. Дата будет напечатана с игнорированием информации о часовом поясе, потому что у временной метки нет информации о часовом поясе. gmdate и date со вторым параметром timestamp, как 1333699439, будут печатать одно и то же время.
Тинус Тейт

1
@MattK: Что имеет смысл, так как Z указывают на UTC. Tinus: временные метки Unix не содержат смещения часовых поясов. dateи gmdateвыходные данные будут различаться в зависимости от переменной TZ (по крайней мере на * nix)
Герт ван ден Берг

Вы можете проверить это phpzag.com/convert-unix-timestamp-to-readable-date-time-in-php
Laeeq

Также было бы неплохо, если бы этот ответ включал решение для противоположной проблемы - преобразование форматированной даты во время UNIX.
Олле Харстедт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.