2014-03-13 50 views
9

如何將此轉換(在ISO8601格式): 2014-03-13T09:05:50.240Z如何ISO8601轉換爲日期格式在PHP

對此(在MySQL日期格式 ): 2014-03-13

in php?

+0

那麼,它似乎像抓住「T」之前的部分輸入會給你想要的結果。你有沒有嘗試過,例如'substr'? – Jon

+0

[使用PHP:如何將ISO8601日期轉換爲其他格式]可能的重複(http://stackoverflow.com/questions/6458585/using-php-how-convert-an-iso8601-date-to-a-different -format) –

回答

13

試試這個

$date = '2014-03-13T09:05:50.240Z'; 

$fixed = date('Y-m-d', strtotime($date)); 

完整的日期函數文檔可以在這裏找到:http://php.net/manual/en/function.date.php

PHP函數 「的strtotime」 沒有別的那麼你TIMESTRING轉換爲unix時間戳。

希望我能幫助:)

PS: 以防萬一的strtotime將使用返回0試試這個:

$date = '2014-03-13T09:05:50.240Z'; 

$fixed = date('Y-m-d', strtotime(substr($date,0,10))); 
+2

非常感謝你......它真棒!你使用'date('Y-m-d',strtotime(substr($ date,0,10))')的最後一個註釋是否是0。這對我來說效果很好!它確實幫了我很多!謝謝...... :) – Neel

+0

歡迎您:)很高興能幫到您 – ThatMSG

1

然後使用Date Formats

嘗試必將爲你工作5種格式簡單地轉換日期時間描述與strtotime使用Unix時間戳和。

$date = '2014-03-13T09:05:50.240Z'; 

$fixed = date('Y-m-d', strtotime($date)); 
+0

Thx Mitul。這似乎有效,但如果格式與我原來的問題不同,例如:'Thu Mar 13 2014 17:21:17 GMT + 0530(印度標準時間)',在轉換後,'$ fixed'值正在輸出它作爲1970-01-01。那麼這種格式是不同的方法嗎? – Neel

+0

其實@ThatMSG建議使用'date('Y-m-d',strtotime(substr($ date,0,10)))'工作!謝謝Mitul的支持! – Neel

+1

@blackops_programmer:它肯定會發送任何你發送的格式。[檢查你的例子](http://codepad.org/J33kvRm4)。 –

3

由於PHP 5.2.0您可以使用OOPDateTime()以及做(當然,如果你更喜歡OOP):

$now = new DateTime("2014-03-13T09:05:50.240Z"); 
echo $now->format('Y-m-d'); // MySQL datetime format