我想一個劃時代的時間戳使用以下語句劃時代日期轉換
date('d-m-Y',strtotime('1349042399999'));
轉換與PHP 5.3至人類可讀的格式,並得到錯誤的結果:01-01-1970
什麼應該返回30-09-2012
。我一直在四處搜索,並創立了以下主題PHP strtotime returns a 1970 date when date column is null,但對我的情況沒有幫助。
我想一個劃時代的時間戳使用以下語句劃時代日期轉換
date('d-m-Y',strtotime('1349042399999'));
轉換與PHP 5.3至人類可讀的格式,並得到錯誤的結果:01-01-1970
什麼應該返回30-09-2012
。我一直在四處搜索,並創立了以下主題PHP strtotime returns a 1970 date when date column is null,但對我的情況沒有幫助。
其原因是,有嵌入該時間戳,這會導致它越過整數溢出極限毫秒。
砍最後3個字符,你是好去:
$original_timestamp = "1349042399999";
$timestamp = (int) substr($original_timestamp,0,-3);
echo date('d-m-Y',$timestamp);
非常感謝您的幫助! –
@KakukiPeter:如果此答案解決了您的問題,請考慮加註並接受它,方法是單擊答案分數下方的綠色大記號標記。 –
正在爲此工作數小時,直到我遇到了切斷最後3個字符的建議。工作很棒! – blakeage
通過使用strtotime
,您試圖將時間戳轉換爲另一個時間戳。你的時間戳也是微秒。該date
功能只需要時間戳沒有像這樣的微秒:
date('d-m-Y',substr('1349042399999', 0, -3));
我認爲,二Rikudo解決方案工作,因爲強制轉換爲int修剪毫秒,不是因爲的。
在我看來,這應該爲你工作(它確實對我來說)
$ original_timestamp = 「1349042399999」; date('d-m-Y',(int)$ original_timestamp);
'1349042399999'高於整數限制,您遇到整數溢出。 –