Используя PHP, я хочу преобразовать временные метки UNIX в строки даты, подобные этой: 2008-07-17T09:24:17Z
Как преобразовать метку времени, например 1333699439
, в 2008-07-17T09:24:17Z
?
Используя PHP, я хочу преобразовать временные метки UNIX в строки даты, подобные этой: 2008-07-17T09:24:17Z
Как преобразовать метку времени, например 1333699439
, в 2008-07-17T09:24:17Z
?
Попробуйте gmdate
вот так:
<?php
$timestamp=1333699439;
echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);
?>
gmdate()
возвращает дату / время в формате GMT. date()
вернет местную дату / время.
- person Matt K; 10.12.2015
date
и gmdate
будет отличаться в зависимости от переменной TZ (по крайней мере, на * nix)
- person Gert van den Berg; 03.05.2016
использовать функцию даты 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
?>
Предполагая, что вы используете PHP5.3, современный способ обработки дат - через собственный класс DateTime. Чтобы узнать текущее время, вы можете просто позвонить
$currentTime = new DateTime();
Чтобы создать объект DateTime из определенной отметки времени (т.е. не сейчас)
$currentTime = DateTime::createFromFormat( 'U', $timestamp );
Чтобы получить отформатированную строку, вы можете затем вызвать
$formattedString = $currentTime->format( 'c' );
См. страницу руководства здесь
Очень важно установить часовой пояс по умолчанию, чтобы получить правильный результат.
<?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
Z
используется, чтобы указать, что это время в формате UTC, поэтому часовой пояс должен быть установлен на UTC
.
- person Gert van den Berg; 03.05.2016
$unixtime_to_date = date('jS F Y h:i:s A (T)', $unixtime);
Это должно работать.
Класс DateTime принимает строку в конструкторе. Если вы добавите к метке времени префикс @ -символа, вы создадите объект DateTime с меткой времени. Для форматирования используйте формат 'c' ... предопределенный составной формат ISO 8601.
Если бы можно было использовать класс DateTime вот так ... установите правильный часовой пояс или оставьте его, если вам нужно время в формате UTC.
$dt = new DateTime('@1333699439');
$dt->setTimezone(new DateTimeZone('America/New_York'));
echo $dt->format('c');
Я нашел информацию в этом разговоре настолько полезной, что просто хотел добавить, как я это понял, используя временную метку из моей базы данных MySQL и немного PHP
<?= date("Y-m-d\TH:i:s\+01:00",strtotime($column['loggedin'])) ?>
Результат был: 2017-03-03T08: 22: 36 + 01: 00
Большое спасибо, Стив, что ты ответила, для меня была эврика.
Вы можете сделать как .....
$originalDate = "1585876500";
echo $newDate = date("Y-m-d h:i:sa", date($originalDate));