這裏是我的PHP代碼轉換時刻字符串到時間戳整數PHP
var_dump($args['startdate']);
var_dump((int)$args['startdate']);die();
這裏是輸出
string(13) "1468821556126" int(2147483647)
預計輸出
string(13) "1468821556126" int(1468821556126)
爲什麼發生這種情況,如何解決這個問題 ?
這裏是我的PHP代碼轉換時刻字符串到時間戳整數PHP
var_dump($args['startdate']);
var_dump((int)$args['startdate']);die();
這裏是輸出
string(13) "1468821556126" int(2147483647)
預計輸出
string(13) "1468821556126" int(1468821556126)
爲什麼發生這種情況,如何解決這個問題 ?
因爲你的數量太大而不能表示爲一個整數你不能得到可靠的結果。
echo PHP_INT_MAX; //2147483647 on my system
對於一些大如你的,如果你需要它以數字格式,將它轉換爲一個浮動,而不是一個整數
echo floatval('1468821556126'); //1.46882155613E+12
的在那裏,如果你想獲得一個日期,我假設這是Javascript時間,這是毫秒。要轉換爲UNIX時間戳,你這時就需要通過將其分攤1000
這是工作..謝謝你的答案... :) –
您可能正在使用32位系統。您看到的數字是32位機器上int的最大大小。 使用浮動或更改爲64位機器。
編號:PHP Integer
我如何獲得所需的輸出?我知道你在說什麼...... :) –
你能否提供更多的背景知道爲什麼你需要整數?在數據類型方面,PHP非常靈活。通常情況下,你不必擔心它。 – adarshdec23
@PraveenKumar你不能從'var_dump'完全得到'int(1468821556126)',因爲PHP整數不會那麼高。如果我在我的解決方案中(或按照本文所述建議)將其轉換爲浮點數(或按照此建議) – BeetleJuice
它的發生,因爲你的$args['startdate']
爲以毫秒爲單位,則需要1000
如果'$ args ['startdate']'是一個時間戳那麼這是唯一正確的答案。 '回聲(日期(「Y-m-d H:i:s e」,1468821556126/1000));'打印'2016-07-18 08:59:16 Europe/Bucharest'。 – axiac
@axiac這可能是你要找的東西。 – adarshdec23
有什麼問題來劃分呢? *「解決」*在這種情況下意味着什麼? – BeetleJuice
'int idate(string $ format [,int $ timestamp = time()])'閱讀更多在http://php.net/manual/en/function.idate.php – ihemant360
@BeetleJuice現在編輯... –