2017-09-12 36 views
1

我試圖日期時間以特定格式轉換爲另一種格式,但由於某些原因,今年是4年以後PHP的DateTime :: createFromFormat()返回錯誤的年份

$date = DateTime::createFromFormat('Y-m-d\TH:m:i.u\Z', '2015-08-30T07:56:28.000Z')->format('Y-m-d'); 

這呼應了string(10) "2019-08-30"

我已經嘗試這樣做,它正確地輸出

$date = new DateTime(); 
echo $date->format('Y-m-d'); 

什麼能與去年導致錯誤?

+1

您使用「M」爲您的分鐘數。那實際上是幾個月,因此你要約會56個月(約4年)。用「我」試試幾分鐘。另外,我猜你的意思是用秒來表示秒數。 –

+1

擴大@MattGibson小寫m爲分鐘上限M爲月份 – Andrei

+0

好點。不知道我是如何錯過:) –

回答

6
$date = DateTime::createFromFormat('Y-m-d\TH:i:s.u\Z', '2015-08-30T07:56:28.000Z')->format('Y-m-d'); 

i用於分鐘,而s用於秒。 m是幾個月。因此你的字符串被錯誤地解釋。

對於正確的格式字符使用,請參閱http://php.net/manual/en/datetime.createfromformat.php

相關問題