Преобразовать метку времени в читаемый PHP даты / времени

227

В сеансе хранится метка времени (1299446702).

Как я могу преобразовать это в удобочитаемую дату / время в PHP? Я пытался srttotime и т. Д. Безрезультатно.

Адамский
источник

Ответы:

396

Используйте date()функцию PHP .

Пример:

echo date('m/d/Y', 1299446702);
Ракета Хазмат
источник
1
Вы можете перейти на epochconvert.com/programming/php для эпохи или отметки времени на удобочитаемую дату, используя PHP.
Laeeq
84

strtotime превращает строку даты в метку времени. Вы хотите сделать противоположное, это дата . Типичный формат даты mysql date('Y-m-d H:i:s'); Проверьте страницу руководства для того, что представляют другие буквы.

Если у вас есть временная метка, которую вы хотите использовать (по-видимому, у вас есть), это второй аргумент date().

Таблетки взрыва
источник
4
было бы хорошо отметить, что моя текущая дата прошла следующим образом:echo date('m/d/Y', strtotime($current_date_variable);
cwiggo
нет ли команды для преобразования метки времени в их стандартизацию даты и времени, потому что я конвертировал дату и время в метку времени Unix, но в моей базе данных это все еще дата и время, когда я попробую это, но я все еще нахожу странным, что для него нет конкретной команды
Марк Роэлс
64

Я просто добавил H: i: s к ответу Рокета, чтобы узнать время и дату.

echo date('m/d/Y H:i:s', 1299446702);

Выход: 06/06/2011 16:25:02

Разан Пол
источник
49
$timestamp = 1465298940;
$datetimeFormat = 'Y-m-d H:i:s';

$date = new \DateTime();
// If you must have use time zones
// $date = new \DateTime('now', new \DateTimeZone('Europe/Helsinki'));
$date->setTimestamp($timestamp);
echo $date->format($datetimeFormat);

результат: 2016-06-07 14:29:00

Другие часовые пояса:

Станислав Маломуж
источник
23

Если вы используете PHP date(), вы можете использовать этот код для получения даты, времени, секунды и т. Д.

$time = time();               // you have 1299446702 in time
$year = $time/31556926 % 12;  // to get year
$week = $time / 604800 % 52;  // to get weeks
$hour = $time / 3600 % 24;    // to get hours
$minute = $time / 60 % 60;    // to get minutes
$second = $time % 60;         // to get seconds
Рахул Дадхич
источник
12
Как насчет високосного года и второго ...?
Петтери Хиетавирта
$year = date('Y', $time)
Рубен Казумов
16

Я знаю, что это старый вопрос, но он высоко в результатах поиска.

Если кому-то нужно преобразование метки времени непосредственно в объект DateTime, есть простая однострочная строка:

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

После комментария @sromero параметр часового пояса (3-й параметр в DateTime :: createFromFormat ()) игнорируется, когда передается метка времени unix, поэтому приведенный ниже код не нужен.

$date = DateTime::createFromFormat('U', $timestamp, new DateTimeZone('UTC'); // not needed, 3rd parameter is ignored

Вы можете проверить руководство PHP для DateTime :: createFromFormat для получения дополнительной информации и опций.

паскаль
источник
1
Просто прокомментируйте вашу последнюю строку кода: в соответствии со страницей руководства, на которую вы ссылаетесь: «Примечание. Параметр часового пояса и текущий часовой пояс игнорируются, если параметр времени содержит метку времени UNIX (например, 946684800) или указывает часовой пояс (например, 2010 г.). -01-28T15: 00: 00 + 02: 00) «.
Смереро
@sromero Вы имеете право. В этом случае параметр часового пояса игнорируется.
Паскаль
14

Попытайся.

<?php
 $timestamp=1333342365;
 echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);
 ?>
Нил Дхакал
источник
8

Вы можете попробовать это:

   $mytimestamp = 1465298940;

   echo gmdate("m-d-Y", $mytimestamp);

Вывод :

06-07-2016

Пратик Мехта
источник
6

Попробуй это:

echo date('m/d/Y H:i:s', 1541843467);
Суннит Ха
источник
1
Всем привет! Кажется, что этот ответ уже был предложен; смотрите верхний ответ.
шляпа
4

echo date("l M j, Y",$res1['timep']);
Это действительно хорошо для преобразования метки времени Unix в читаемую дату вместе с днём. Пример: четверг, 7 июля 2016 г.

Гарри Сингх
источник
1
Подобные ответы уже размещены, в чем плюс информации в вашем ответе?
Штеффен Харбич
4
echo 'Le '.date('d/m/Y', 1234567890).' &agrave; '.date('H:i:s', 1234567890);
Красный уан
источник
4
$epoch = 1483228800;
$dt = new DateTime("@$epoch");  // convert UNIX timestamp to PHP DateTime
echo $dt->format('Y-m-d H:i:s'); // output = 2017-01-01 00:00:00

В приведенных выше примерах «r» и «Ymd H: i: s» представляют собой форматы даты PHP, другие примеры:

Формат вывода

r              -----    Wed, 15 Mar 2017 12:00:00 +0100 (RFC 2822 date)
c              -----    2017-03-15T12:00:00+01:00 (ISO 8601 date)
M/d/Y          -----    Mar/15/2017
d-m-Y          -----    15-03-2017
Y-m-d H:i:s    -----    2017-03-15 12:00:00
С.М. Имтиаз Хуссейн
источник