2012-02-09 60 views
0

我以毫秒爲單位從xml文檔中提取unix時間,但無法在php 5.2.17中將其轉換爲可讀的日期(d-m-Y)。Unix時間以毫秒爲單位d-m -Y

我用http://www.epochconverter.com/從正確 其轉換爲2012年2月9日13時37分49秒

我已經試過如下:

$timestamp = $xml['LastBackupDate']; 
echo '<br />Method 1: '.date("d-m-Y", $timestamp); 
echo '<br />Method 2: '.date("d-m-Y", strtotime($timestamp)); 
echo '<br />Method 3: '.date("d-m-Y", strtotime($timestamp*1000)); 
echo '<br />Method 4: '.date("d-m-Y", strtotime($timestamp/1000)); 
echo '<br />Method 5: '.date("d-m-Y", $timestamp/1000); 
echo '<br />Method 6: '.date("d-m-Y", (int)$timestamp); 
echo '<br />Method 7: '.date("d-m-Y", intval($timestamp)); 
echo '<br />Method 8: '.date("d-m-Y", intval($timestamp)/1000); 
echo '<br />Method 9: '.date("d-m-Y", intval($timestamp/1000)); 

這帶回:

Method 1: 
Method 2: 01-01-1970 
Method 3: 01-01-1970 
Method 4: 01-01-1970 
Method 5: 25-01-1970 
Method 6: 19-01-2038 
Method 7: 19-01-2038 
Method 8: 25-01-1970 
Method 9: 25-01-1970 

任何想法如何將th是什麼? 謝謝!


編輯,最好成績使用:

echo date("d-m-Y", substr($xml['LastBackupDate'],0,-3)); 

回答

0

你試過通過1000,而不是乘?大紀元時間通常在數秒內


好了,現在我確實需要學習PHP ...

date需要的格式和時間。 strtotime需要一個人類可讀的日期/時間字符串並返回一個時間。您的值是以毫秒爲單位的紀元時間,而不是人類可讀的字符串,因此不是strtotime的有效參數。

嘗試方法4沒有strtotime,它不應該需要。


權,沒有工作,因爲$timestamp是一個字符串(我認爲這已經是一個整數)。

你說丟掉字符串的最後3個字符會讓你獲得最大的方式,就像轉換爲整數然後除以1,000。你的方法轉換爲int但不分割 - 你需要兩個!

根據thisdate需要整數時間戳以秒爲。你的值是一個字符串,所以你應該把它轉換成一個整數。也是以毫秒爲單位,所以你必須除以1,000來獲得正確的單位。

請注意,紀元時間自1970年1月1日起計算爲秒數。因此,無論何時您看到01-01-1970,第二個參數評估爲零。

date("d-m-Y", $timestamp);     <-- string, not int: treated as zero 
date("d-m-Y", strtotime($timestamp));  <-- not a formatted time, gives zero 
date("d-m-Y", strtotime($timestamp*1000)); <-- ditto 
date("d-m-Y", strtotime($timestamp/1000)); <-- ditto 
date("d-m-Y", $timestamp/1000);   <-- clearly nonzero, but no idea what! 
date("d-m-Y", (int)$timestamp);   <-- correct type but in milliseconds 
date("d-m-Y", intval($timestamp));   <-- correct type but in milliseconds 

如果您傳遞一個包含秒數而不是毫秒的整數,它應該是正確的。

像這樣:

date("d-m-Y", intval($timestamp)/1000); 
+0

只是做到這一點,並更新了最初的問題...但它並沒有幫助。 – Michael 2012-02-09 14:12:15

+0

已編輯。你的_Method 1_沒有叫'strtotime',我認爲這是正確的(只有單位關閉)。 – Useless 2012-02-09 14:19:26

+0

我已經做了改變,並添加了方法5 - 似乎沒有工作,但輸出是不同的...任何其他想法? – Michael 2012-02-09 14:24:20

相關問題