2012-06-16 76 views
0

我有一個分配給一個變量以下字符串:createFormat PHP輸入字符串不匹配輸出對象

$date = "16 June, 2012, 13:00pm"; 

我運行它通過createFromFormat,試圖將其轉換爲一個DateTime對象:

$dateTime = DateTime::createFromFormat("d M, Y, H:ia", $date); 

這是對象,我回去:

DateTime Object 
(
    [date] => 2012-06-17 01:00:00 
    [timezone_type] => 3 
    [timezone] => Europe/Dublin 
) 

我不知道我在做什麼不對的誠實的,createFromFormat中使用的格式看起來與輸入字符串的格式相匹配,但輸出是錯誤的。在這個例子中,天,而不是16日的第17和時間顯示01:00:00,而不是13:00:00

任何意見或指針將真正幫助,

回答

2

PM由DateTime解釋爲「添加12小時的結果」,這是你扔日期失去平衡。

簡單的解決方案:放下PM或者有12小時的時鐘版本(即下午1點)

1

嘗試擺脫下午。 24小時制的要點是你不需要am/pm。

$date = "16 June, 2012, 13:00"; 
$dateTime = DateTime::createFromFormat("d M, Y, H:i", $date);