1

我正在从一个 JSON 数据库中提取数据,该数据库存储 unix 纪元中的时间,但由于某种原因,当我将它们拉出时,这些数字正在浮动。这是我以前从未处理过的事情。所以基本上出现了一个类似的数字1293083730000,因为1.293085408E+12我需要将数字恢复到纪元时间,以便我可以将它与当前时间进行比较。任何帮助都会很棒。

4

2 回答 2

3

那是工程符号,一种书写大数的便捷方法。该数字仍然是整数。

问题是 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

于 2010-12-23T06:12:27.057 回答
2

php.ini配置文件中,有一个值'precision'.
它只是定义了一个浮点数将显示多少位。

PHP手册中的更多信息

您可以增加精度值并重试。

于 2010-12-23T08:35:06.377 回答