2012-04-06 2 views

ответ

234

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

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

Пожалуйста, не нужно, чтобы 'gmdate()' возвращает дату/время в GMT. 'date()' возвращает локальную дату/время. –

+4

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

+0

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

92

дата использования функции 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 
?> 
+0

Как я могу преобразовать конкретную метку времени с 'c'? например, 1333699439 –

+1

дата ('c', 1333699439) –

+0

это решило вашу проблему? –

38

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

$currentTime = new DateTime(); 

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

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

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

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

См manual page here

+1

Как я могу преобразовать конкретную метку времени с этим? например, 1333699439 –

+0

@Norse Конечно, я прочитал его сообщение. Вся информация, в которой он нуждался, была в моем посте. Все, что ему нужно было сделать, это прочитать документы PHP для объекта DateTime. Я отредактировал свой пост, чтобы сделать его еще более ясным. Объект DateTime - это способ перехода на PHP, и все новички следует поощрять использовать его. Пока что я единственный, кто предоставил этот ответ. Btw Я считаю ваш комментарий немного агрессивным и не совсем в духе SO. – liquorvicar

+0

@Ahmetvardar См. Мое редактирование, хотя все это в документах PHP, которым я предоставил ссылку. Я настоятельно рекомендую вам начать использовать объект DateTime. Он обеспечивает отличную поддержку для дат/времени, включая часовые пояса и т. Д. – liquorvicar

5
$unixtime_to_date = date('jS F Y h:i:s A (T)', $unixtime); 

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

11

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

<?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

+1

В ISO8601 'Z' используется для указания, что это время UTC, поэтому часовой пояс должен быть установлен в' UTC' –

1
<?php 
$timestamp=1486830234542; 
echo date('Y-m-d H:i:s', $timestamp/1000); 
?> 
0

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

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

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

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

Смежные вопросы