Правильно, я хотел бы прояснить это раз и навсегда.
Объяснение того, как отображать дату и время в формате ISO 8601 в PHP с милли секундами и микро секундами ...
милли секунд или «мс» имеют 4 цифры после десятичной точки, например, 0,1234. микро секунд или 'мкс' имеют 7 цифр после десятичной дроби. Фракции / имена в секундах здесь
Функция PHP date()
работает не совсем так, как ожидалось, с миллисекундами или микросекундами, поскольку она будет работать только с целым числом, как описано в документах php date в формате символа 'u'.
Основано на идее комментария Лаки ( здесь ), но с исправленным синтаксисом PHP и правильной обработкой форматирования секунд (код Лаки добавил неверный дополнительный '0' после секунд)
Они также устраняют условия гонки и правильно форматируют секунды.
PHP Дата с милли секунд
Рабочий эквивалент date('Y-m-d H:i:s').".$milliseconds";
list($sec, $usec) = explode('.', microtime(true));
echo date('Y-m-d H:i:s.', $sec) . $usec;
Выход = 2016-07-12 16:27:08.5675
PHP Дата с микро секунд
Рабочий эквивалент date('Y-m-d H:i:s').".$microseconds";
или date('Y-m-d H:i:s.u')
, если функция даты работала как ожидалось с микросекундами / microtime()
/ 'u'
list($usec, $sec) = explode(' ', microtime());
echo date('Y-m-d H:i:s', $sec) . substr($usec, 1);
Выход = 2016-07-12 16:27:08.56752900