我在两台不同的服务器上运行相同的代码,但我得到了不同的结果。我不确定我需要改变什么才能解决这个问题。
我正在使用时间戳,我正在使用以下内容。
$timestamp = round(microtime(true) * 1000);
echo $timestamp;
当我从运行PHP 5.4.16的本地测试服务器执行此操作时,我得到的值如下:1376732353181
当我从运行PHP 5.3.6的实时服务器运行相同的东西时,我的值如下:1.37673257778E + 12
我需要我的实时服务器以与我的测试服务器相同的方式运行,我不确定是什么导致了差异。
问题似乎发生在乘以1000并获得大数字的时候。我的本地服务器给了我一个常规号码,而另一个服务器给我一个E + 12的小数。我忘了那叫什么.. ??不过我不想要它。
有关此的任何信息将不胜感激。谢谢!
答案 0 :(得分:2)
您可以使用intval来避免浮点表示(如果您的PHP是64位)
PHP 32位无法存储大于2147483647的int(感谢Jon)所以请注意这一点。如果你需要它在不论环境的情况下做出同样的反应,那么也许你应该为它们使用浮动。
希望有所帮助。
答案 1 :(得分:0)
您可以使用
强制结果的十进制数字表示printf("%.0f", round(microtime(true) * 1000));
如果您希望结果进入变量,还有sprintf
。