Как конвертировать ISO8601 в формат даты в php


Как преобразовать это ( в формат ISO8601): 2014-03- 13T09:05:50.240Z

К этому ( в формате ДАТЫ MySQL): 2014-03-13

В php?

Author: Neel, 2014-03-13

3 answers

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

$date = '2014-03-13T09:05:50.240Z';

$fixed = date('Y-m-d', strtotime($date));

Полную документацию по функции даты можно найти здесь: http://php.net/manual/en/function.date.php

Функция PHP "strtotime" не делает ничего другого, кроме преобразования вашей временной строки в метку времени unix.

Надеюсь, я смогу помочь:)

P.s.: На всякий случай, если strtotime вернет 0, попробуйте использовать это:

$date = '2014-03-13T09:05:50.240Z';

$fixed = date('Y-m-d', strtotime(substr($date,0,10)));
 20
Author: ThatMSG, 2016-04-28 06:38:55

Начиная с PHP 5.2.0 вы можете сделать это с помощью ООП и DateTime() также (конечно, если вы предпочитаете ООП):

$now = new DateTime("2014-03-13T09:05:50.240Z");
echo $now->format('Y-m-d');    // MySQL datetime format
 5
Author: Faisal, 2017-01-10 17:30:06

Просто преобразуйте описание даты и времени в метку времени Unix, используя strtotime, а затем пять форматов, используя Форматы дат

Попробуйте, это наверняка сработает для вас.

$date = '2014-03-13T09:05:50.240Z';

$fixed = date('Y-m-d', strtotime($date));
 1
Author: Mitul Shah, 2014-03-13 11:09:19