преобразование unixtime в mysql datetime с сохранением доли секунды - PullRequest
0 голосов
/ 14 марта 2019
$id["REQUEST_TIME_FLOAT"]="'".date( 'Y-m-d H:i:s.', $_SERVER["REQUEST_TIME_FLOAT"]).substr((($_SERVER["REQUEST_TIME_FLOAT"]-floor($_SERVER["REQUEST_TIME_FLOAT"]))),2,20)."'";

Скажите, что $ _SERVER ["REQUEST_TIME_FLOAT"] = 157888888888888.98765

$t=new DateTime()
$t->setTimestamp( only accept an integer)  Fail

Кроме того, команда date просто отключает ее, даже если вы добавляете u к формату, который просто добавляет 00000, а не к действительному числу миллисекунд.

Большинство функций, которые я могу найти, просто обрезают .98765, и я не хочу этого.

Я собрал хак, показанный выше. Есть ли лучший способ и / или более эффективный способ сделать это?

1 Ответ

1 голос
/ 14 марта 2019

Попробуйте использовать DateTime::createFromFormat("U.u", $_SERVER["REQUEST_TIME_FLOAT"] );

В документах говорится, что date() будет обрезать миллисекунды, потому что ожидает целое число, но эта функция не будет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...