поплавок до эпохи unix

Я извлекаю данные из базы данных JSON, которая хранит время в unix-эпоху, но по какой-то причине числа плавают, когда я их вытаскиваю. Это то, с чем мне никогда не приходилось сталкиваться раньше. Так что обычно число, например 1293083730000 появляется как 1.293085408E+12 Мне нужно вернуть номер в эпоху, чтобы сравнить его с текущим временем. Любая помощь будет большой.

Solutions Collecting From Web of "поплавок до эпохи unix"

Это инженерная нотация , удобный способ написания больших чисел. Число по-прежнему является целым числом.

Проблема в том, что внутренние типы PHP слишком малы, чтобы представить число как десятичное, см. Следующий пример:

 <? $i = 1293083730000; echo "\$i is $i\n\n"; echo sprintf("\$i is %d\n\n", $i); echo sprintf("\$i is %e\n\n", $i); ?> 

Эти результаты:

 $i is 1293083730000 $i is 298573904 $i is 1.293084e+12 

Вам нужна либо 64-битная платформа, либо работа с номером в виде строки или значения с плавающей запятой. Дополнительную информацию см. В документации по PHP для целых чисел:

http://php.net/manual/en/language.types.integer.php

В файле конфигурации php.ini есть значение 'precision' .
Он просто определяет, сколько цифр будет отображаться в номере с плавающей точкой.

Дополнительная информация в руководстве по PHP

Вы можете увеличить значение точности и повторите попытку.