Преобразование метки времени 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);
?>
stewe
источник
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.
Олле Харстедт