在this question的幫助下,我已經能夠將日期字符串解析爲DateTime
對象,然後以所需的格式顯示它。 DateTime
構造函數在解析DateTime
字符串時有很好的例外 - 它無法區分dd/mm/YYYY
和mm/dd/YYYY
之間的區別。格式未知時創建PHP日期時間
如果我做到以下幾點:
$dt = new DateTime("05/03/1900"); // 5th march 1900
echo $dt->format('Y-m-d');
然後我得到以下輸出:
1900-05-03
但是,原來的日期是dd/mm/YYYY
格式,所以我的輸出是不正確 - 我現在有3rd May 1900
。
解析日期字符串時,有沒有辦法將DateTime
設置爲更喜歡dd/mm/YYYY
而不是mm/dd/YYYY
?
編輯: 我打電話在這個類的構造函數date_default_timezone_set('Europe/London');
,但這似乎並沒有產生任何影響。也許這與DateTime
類沒有關係。
對於時區:'日期時間:: createFromFormat( 'd/M/Y','05/03/1900' ,新DateTimeZone(「歐洲/倫敦)) ;' – vaso123
DateTime對象與'strtotime()' 如果您使用'/'作爲分隔符,並且使用'-'作爲分隔符,則假定日期爲美國格式。 – RiggsFolly
如果格式未知,那麼你不能可靠地解析它。怎麼說你的日期是dd/mm/yyyy或者mm/dd/yyyy? '/'暗示這是一種美國格式,但沒有說它必須是。那要麼是3月5日,要麼是5月3日。你不能說。 –