2015-05-04 67 views
0

我想解析一個網頁到數據結構,因此我需要將兩個字符串(一個日期,一次)轉換爲日期時間對象。字符串與日期PHP日期時間

聽起來很容易,但我的問題是格式。

示例日期是:'Donnerstag 23.10。 2014 ' 例如時間是:' 20:30

將比賽拖入ONE日期時間這個我需要他們Concat的這麼 我造成

注:解決嵌入式編輯(正確的,錯誤的VS ,這是我的問題) dateTimeString是'Donnerstag 23.10。 2014 20:30 '

$date = "Donnerstag 23.10. 2014"; 
$date = explode(" ", $date); 
$time = "20:30"; 
$datetimeString = $date[1].$date[2]." ".$time; 

// wrong 
$datetime = new DateTime(); 
$dateTime->createFromFormat("d.m.Y H:i"); 

// correct 
DateTime::createFromFormat("d.m.Y H:i"); 
echo $datetime->format("d.m.Y H:i"); 

我期望的輸出是' Donnerstag 23.10。 2014 20:30 - > 23.10.2014 20:30' 但結果輸出是我運行腳本的日子/時間...所以createFromFormat失敗,但沒有錯誤/警告雖然!

請注意:我也嘗試切斷星期幾,但仍然遇到同樣的問題,日期時間得不到解析正確。我真的需要把它分解到每一個單位(日,月,年,然後分配給它?)

+2

那麼你永遠不可能用你'$ datetimeString'在這個過程中事後所以顯然它不能工作... –

+0

我認爲你需要擺脫這個詞Donnerstag的,沒有好處的擁有它,我試圖讓PHP識別它,但我一直沒有成功。 – braks

回答

1

檢查低於這個

$date = "23.10.2014"; 
$time = "20:30"; 
$datetimeString = $date." ".$time; 
$datetime = DateTime::createFromFormat("d.m.Y H:i", $datetimeString); 
echo $datetime->format("d.m.Y H:i"); 
+0

問題是我的createFromFormat調用,你的例子告訴我,我必須調用它靜態DateTime :: createFromFormat而不是創建一個實例並調用方法。謝謝 – lumo

0

檢查 -

$date = "Donnerstag 23.10. 2014"; 
$date = explode(" ",$date); 
$time = "20:30"; 

$new_date =date("d.m.Y H:i", strtotime($date[1].$date[2].$time)); 
0

剛從strtotime()函數傳遞你的$ datetimeString。它會創建一個很長的數字。嘗試這個。

$date = "23.10.2014"; 
$time = "20:30"; 
$datetimeString = $date." ".$time; 
$datetime = DateTime::createFromFormat("d.m.Y H:i",strtotime($datetimeString)); 
echo $datetime->format("d.m.Y H:i"); 
相關問題