2015-06-30 3 views
0

Я пытаюсь преобразовать строку на сегодняшний день в следующем формате с помощью PHP. Это временная метка, но я не уверен в техническом термине для ее формата, поэтому у меня возникают проблемы с ее преобразованием.Как преобразовать строку в php из следующего формата?

$timestamp = "20150611183741.941Z"; 

Как его преобразовать в тип данных?

+0

Получаю, что это 2015-06-11 18:37:41, но что такое 941Z? –

+1

@BrianCohan: Возможно, микросекунды и время Зулу. – AbraCadaver

+0

http://php.net/manual/en/datetime.createfromformat.php –

ответ

5

.941Z - миллисекунды и идентификатор, обозначающий это в формате UTC. Использование DateTime::createFromFormat() вы можете разобрать эту строку, чтобы получить формат даты, которую вы ищете

$timestamp = "20150611183741.941Z"; 
$date = DateTime::createFromFormat('YmdHis.ue', $timestamp); 

echo $date->format('Y-m-d H:i:s'); 

Demo

+0

@ user1042090 Это ответ на ваш вопрос? –

+0

Эй, парень, спасибо большое. Это действительно помогло. Прямо сейчас, в PHP, я пытаюсь получить тот же текущий формат даты и времени с сервера linux. Интересно, есть ли способ, который позволит мне получить дату назад, как в этом формате. например, $ currentTime = time(); так что $ currentTime будет чем-то вроде «20150701183741.018Z» ?? –

+0

Вы также можете использовать DateTime для этого. Просто взгляните на параметры формата DateTime ::, которые будут очень похожи на YmdHis.ue, используя только DateTime :: createFromFormat(). –

0

Я знаю его старую нить, и вы, вероятно, нашли ответ на свой вопрос сейчас, просто обновить его с тем, что работал меня. u для микросекунд, то, что мне было нужно, было v за миллисекунды v добавлено в PHP 7 FYI.

$datetime = new DateTime('2018-01-22T18:33:05.230234'); 

echo $datetime->format('Y-m-d\TH:i:s.v\Z'); // output 2018-01-22T18:33:05.230Z 

Вы также мог бы достичь выше в PHP < 7 с помощью следующего кода.

echo sprintf(
    "%s%03dZ", 
    $datetime->format("Y-m-d\TH:i:s\."), 
    floor($datetime->format("u")/1000) 
); // output 2018-01-22T18:33:05.230Z 
Смежные вопросы