Как преобразовать ISO8601 в формат даты в php
Как конвертировать это (в формате ISO8601): 2014-03-13T09: 05: 50.240Z
К этому (в формате MySQL DATE): 2014-03-13
в php?
Ответы
Ответ 1
попробуй это
$date = '2014-03-13T09:05:50.240Z';
$fixed = date('Y-m-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('Y-m-d', strtotime(substr($date,0,10)));
Ответ 2
С PHP 5.2.0
вы также можете использовать OOP и DateTime()
(конечно, если вы предпочитаете ООП):
$now = new DateTime("2014-03-13T09:05:50.240Z");
echo $now->format('Y-m-d'); // MySQL datetime format
Ответ 3
Просто преобразуйте описание datetime в временную метку Unix, используя с strtotime, а затем пять форматов с использованием форматов даты
Попробуйте, это наверняка сработает для вас.
$date = '2014-03-13T09:05:50.240Z';
$fixed = date('Y-m-d', strtotime($date));
Ответ 4
Нет причин использовать неэффективные функции времени. Самый эффективный способ - просто обрезать первые 10 символов:
substr($date,0,10)