strtotime отбрасывает микросекунды из формата ISO8601, есть ли альтернативная функция, которой нет? - PullRequest
1 голос
/ 17 июня 2020

Когда я делаю:

echo(strtotime('2020-06-16T08:08:18.339Z'));

strtotime дает мне:

1592294898

Есть ли функция для преобразования даты / времени в ISO8601 format без потери микросекунд? (В дробное число секунд, подобное тому, которое возвращает функция microtime(true).)

PS. Я использую PHP 7,4

1 Ответ

2 голосов
/ 17 июня 2020

Как всегда с датами в PHP, DateTime на помощь

$str = '2020-06-16T08:08:18.339Z';

$dt = new DateTime($str); // or DateTime::createFromFormat('Y-m-d\TH:i:s.uO', $str);

echo (float) $dt->format('U.u');

Демо ~ https://3v4l.org/ee9MZ


Вы также можете используйте константу DATE_RFC3339_EXTENDED в createFromFormat, если вас интересуют только миллисекунды, но в вашем вопросе указано «микросекунды» .

...