2011-07-11 68 views
2

我試圖使用timeago(http://timeago.yarp.com/),並找到了使用php將時間戳從MYSQL轉換爲ISO-8601的解決方案。將MYSQL時間戳轉換爲ISO-8601而不使用timzone偏移量

date('c',strtotime($TimeStamp)); 

這工作得很好,除了即時得到的時區在年底偏移

2011-07-10T08:46:50-**05:00** 

我要的是2011-07-10T08:46:50Z

有沒有人有一個解決方案或知道爲什麼,我發現了時區偏移?

+0

http://os-code-web.blogspot.com/2011/04/15-top-php-coding-tutorials-tips-and.html –

+0

結尾的'Z'*是一個時區抵消。它指定UTC時區,與2011-07-10T08:46:50-0000(或+0000,我想)相同。 – derobert

回答

3

'c'將返回整個日期,包括時區偏移量。您將不得不使用其他選項手動構建它。試試這個:

$time_stamp = time(); 
echo date('o-m-N',$time_stamp)."T".date('H:i:s',$time_stamp)."Z"; 
+0

'N'表示星期幾,星期一表示1,星期日表示7。你不想要'o-m-d'或'Y-m-d'嗎? – rwilson04

8

你可以在MySQL直接做到這一點:

SELECT DATE_FORMAT(yourfield, '%Y-%m-%dT%H:%i:%s0Z') 

有一個GET_FORMAT(datetime, 'iso')電話爲好,但返回的格式字符串爲ISO 9075,這是不是你想要很什麼。由於它不直接執行8601,因此您必須自己構建格式字符串。

1

簡單的打開圖

date('Y-m-d\TH:i', strtotime('2015/09/24 08:46:50)) 
1

另一種方式:

substr(date('c',strtotime($Timestamp)),0,-6).'Z';

相關問題