我需要找到什么设置来解决这个问题?

时间:2013-08-17 09:45:21

标签: php

我在两台不同的服务器上运行相同的代码,但我得到了不同的结果。我不确定我需要改变什么才能解决这个问题。

我正在使用时间戳,我正在使用以下内容。

$timestamp = round(microtime(true) * 1000);
echo $timestamp;

当我从运行PHP 5.4.16的本地测试服务器执行此操作时,我得到的值如下:1376732353181

当我从运行PHP 5.3.6的实时服务器运行相同的东西时,我的值如下:1.37673257778E + 12

我需要我的实时服务器以与我的测试服务器相同的方式运行,我不确定是什么导致了差异。

问题似乎发生在乘以1000并获得大数字的时候。我的本地服务器给了我一个常规号码,而另一个服务器给我一个E + 12的小数。我忘了那叫什么.. ??不过我不想要它。

有关此的任何信息将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用intval来避免浮点表示(如果您的PHP是64位)

PHP 32位无法存储大于2147483647的int(感谢Jon)所以请注意这一点。如果你需要它在不论环境的情况下做出同样的反应,那么也许你应该为它们使用浮动。

希望有所帮助。

答案 1 :(得分:0)

您可以使用

强制结果的十进制数字表示
printf("%.0f", round(microtime(true) * 1000));

如果您希望结果进入变量,还有sprintf