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

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

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

Ответы на вопрос(8)

использовать функцию датыdate ( string $format [, int $timestamp = time() ] )

использованиеdate('c',time()) как формат для преобразования в дату ISO 8601 (добавлено в PHP 5) -2012-04-06T12:45:47+05:30

использованиеdate("Y-m-d\TH:i:s\Z",1333699439) получить2012-04-06T13:33:59Z

Вот некоторые форматы, которые поддерживает функция даты

<?php
$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today = date("H:i:s");                         // 17:16:18
?>
 06 апр. 2012 г., 09:27
это решило вашу проблему?
 03 мая 2016 г., 16:08
@ user2060451: Z должен указывать время UTC (в этом случае следует использовать gmdate ...) Проверьте информацию ISO8601 на вашем любимом исследовательском ресурсе.
 06 апр. 2012 г., 09:19
дата (& APOS; & APOS гр;, 1333699439)
 Utku Dalmaz06 апр. 2012 г., 09:18
как я могу преобразовать определенную временную метку с помощью "c"? например 1333699439
 24 янв. 2015 г., 22:53
@ user2060451 все, чему предшествует обратная косая черта, отображается в виде литерального символа в результирующей временной строке
Решение Вопроса

Пытатьсяgmdate как это:

<?php
$timestamp=1333699439;
echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);
?>
 04 мая 2017 г., 10:08
Вы можете проверить этоphpzag.com/convert-unix-timestamp-to-readable-date-time-in-php
 14 сент. 2018 г., 16:20
Также было бы хорошо, если бы этот ответ включал решение для противоположной проблемы, преобразовав форматированную дату во время UNIX.
 10 дек. 2015 г., 17:37
Пожалуйста не тоgmdate() возвращает дату / время в GMT.date() вернет местную дату / время.
 03 мая 2016 г., 16:05
@MattK: Что имеет смысл, так как Z обозначают UTC. Tinus: временные метки Unix не содержат смещения часовых поясов.date а такжеgmdateвыходной сигнал будет отличаться в зависимости от переменной TZ (по крайней мере, на * nix)
 07 апр. 2016 г., 15:09
Приведенный выше комментарий не имеет смысла в этом контексте. Использование даты со вторым параметром в качестве метки времени, как показано в ответе, не будет печатать дату в местном часовом поясе. Дата будет напечатана с игнорированием информации о часовом поясе, потому что у метки времени нет информации о часовом поясе. gmdate и date со вторым параметром timestamp, как 1333699439, будут печатать одно и то же время.

Очень важно установить часовой пояс по умолчанию, чтобы получить правильный результат

<?php
// set default timezone
date_default_timezone_set('Europe/Berlin');

// timestamp
$timestamp = 1307595105;

// output
echo date('d M Y H:i:s Z',$timestamp);
echo date('c',$timestamp);
?> 

Помощь онлайн-конвертации:http://freeonlinetools24.com/timestamp

 03 мая 2016 г., 16:10
В ISO8601,Z используется, чтобы указать, что это время UTC, поэтому часовой пояс должен быть установлен наUTC
 29 апр. 2018 г., 18:11
Работает без разделительной части. В противном случае дата по умолчанию 1970.

Предполагая, что вы используете PHP5.3, тогда современный способ обработки дат - через нативныйКласс DateTime, Чтобы узнать текущее время вы можете просто позвонить

$currentTime = new DateTime();

Чтобы создать объект DateTime из определенной метки времени (т.е. не сейчас)

$currentTime = DateTime::createFromFormat( 'U', $timestamp );

Чтобы получить отформатированную строку, вы можете позвонить

$formattedString = $currentTime->format( 'c' );

Увидетьстраница руководства здесь

 Utku Dalmaz06 апр. 2012 г., 09:17
Как я могу конвертировать определенную метку времени с этим? например 1333699439
 06 апр. 2012 г., 09:34
@Norse Конечно, я читал его пост. Вся информация, в которой он нуждался, была в моем посте. Все, что ему нужно было сделать, это прочитать документы PHP для объекта DateTime. Я отредактировал свой пост, чтобы сделать его еще более понятным. Объект DateTime - это путь в PHP, и все новички должны его использовать. Пока я единственный, кто дал такой ответ. Кстати, я считаю ваш комментарий немного агрессивным и не совсем в духе ТАК.
 06 апр. 2012 г., 09:35
@Ahmetvardar Посмотрите мое редактирование, хотя все это в документах PHP, на которые я предоставил ссылку. Я настоятельно призываю вас начать использовать объект DateTime. Он обеспечивает отличную поддержку для дат / времени, включая часовые пояса и т. Д.
$unixtime_to_date = date('jS F Y h:i:s A (T)', $unixtime);

Это должно работать.

проверьте этот URLhttp://www.epochconverter.com/.

У всех языков Epoch & amp; Unix Timestamp.

<?php
$timestamp=1486830234542;
echo date('Y-m-d H:i:s', $timestamp/1000);
?>
 29 апр. 2018 г., 18:11
Работает без разделительной части. В противном случае дата по умолчанию 1970.

Я нашел информацию в этом разговоре настолько полезной, что я просто хотел добавить, как я понял это, используя метку времени из моей базы данных MySQL и немного PHP

 <?= date("Y-m-d\TH:i:s\+01:00",strtotime($column['loggedin'])) ?>

Выход был: 2017-03-03T08: 22: 36 + 01: 00

Большое спасибо, Стью, ты ответил, что для меня это была эврика.

Ваш ответ на вопрос