В некоторых случаях создание объекта класса DateTime в PHP (с микросекундами) может завершаться фатальной ошибкой. С чем это связано и как победить?
Во-первых, как создать объект с учётом Микросекунд:
$now = DateTime::createFromFormat('U.u', microtime(true));
То есть мы указываем формат "U.u" и в качестве параметра передаем время
с микросекундами.
Но это не всегда хорошо работает.
Особенность в том, что если вдруг мы чётко попали в момент, когда микросекунд нет (0 микросекунд), тогда microtime() вернет просто целое число и это уже не подойдет для указанного формата "U.u".
Решение:
$now = DateTime::createFromFormat('U.u', sprintf('%.f', microtime(true)));
Комментариев нет:
Отправить комментарий