2013-08-17 65 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

相關問題