带有日期名称

时间:2015-05-04 08:52:15

标签: php datetime

我试图将网页解析为数据结构,因此我需要将两个字符串(一个日期,一次)转换为日期时间对象。

听起来很简单,但我的问题是格式。

示例日期为:' Donnerstag 23.10。 2014 ' 示例时间是:' 20:30 '

将此匹配到 ONE 日期时间我需要连接它们 所以我的结果

注意:内联编辑的解决方案(正确,错误,这是我的问题) 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失败,但没有错误/警告!

注意:我也试过切断工作日,但仍然遇到同样的问题,日期时间没有被解析正确。我是否真的需要将其分解为每一位(日,月,年然后分配它?)

3 个答案:

答案 0 :(得分: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");

答案 1 :(得分: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)); 

答案 2 :(得分:0)

从strtotime()函数传递$ datetimeString。它会创建一个很长的数字。试试这个。

DEBUG