2013-08-17 45 views
0

我在两台不同的服务器上运行相同的代码,我得到了不同的结果。我不知道我需要改变以解决这个问题。我需要找到什么设置才能解决此问题?

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

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

当我这样做,从我的本地测试服务器上运行PHP 5.4.16我得到这样一个值:1376732353181

当我从现场服务器上运行PHP 5.3.6运行同样的事情,我的值比如:1.37673257778E + 12

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

这个问题似乎发生在乘以1000并得到大量的点。我的本地服务器给了我一个正常的数字,而另一台服务器给我一个小数点,E + 12结束。我忘了那是什么叫.. ??不过,我不想要它。

任何信息将不胜感激。谢谢!

+0

解决方法是仅使用intval来避免获得浮点表示。 – Xonar

+0

@Xonar:将时间戳乘以1000会将您推到浮动区域,除非PHP是64位。 – Jon

+0

@Xonar,这对我很有用。如果你想把它作为答案,我会接受它。 –

回答

2

您可以使用INTVAL以避免收到浮点表示(如果你的PHP是64位)

PHP 32位不能存储INT比2147483647(感谢乔恩)较大所以要知道的是。如果你需要它反应不管环境如何,那么也许你应该为他们两个使用浮游物。

希望有帮助。

0

您可以强制结果的十进制数字表示与

printf("%.0f", round(microtime(true) * 1000)); 

,如果你想要的结果去到一个变量还有sprintf

相关问题