Как преобразовать ISO8601 в формат даты в php

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

К этому ( в формате MySQL DATE ): 2014-03-13

в php?

попробуй это

 $date = '2014-03-13T09:05:50.240Z'; $fixed = date('Ym-d', strtotime($date)); 

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

Функция PHP «strtotime» не делает ничего, а затем преобразует вашу timestring в временную метку unix.

Надеюсь, что смогу помочь 🙂

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

 $date = '2014-03-13T09:05:50.240Z'; $fixed = date('Ym-d', strtotime(substr($date,0,10))); 

С PHP 5.2.0 вы также можете использовать OOP и DateTime() (конечно, если вы предпочитаете ООП):

 $now = new DateTime("2014-03-13T09:05:50.240Z"); echo $now->format('Ym-d'); // MySQL datetime format 

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

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

 $date = '2014-03-13T09:05:50.240Z'; $fixed = date('Ym-d', strtotime($date));