2015-05-04 78 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");