2014-11-21 97 views
0

我结束了棒的短端和一个非常冗长的字符串作为日期:转换冗长字符串日期PHP

Sun Oct 5, 2014 10am to 11am PDT 

我想将其转换为一个PHP Date对象,所以我可以写它到一个MySQL数据库。如果您注意到,它有一个“to”,表示事件持续时间。我已经搜索了这个转换相当多,并没有发现任何不是广泛的字符串解析。我接受所有的建议和想法。

回答

1

原因这不是一个有效的时间或日期字符串,你将无法解析它,因为它是。即使您看起来不喜欢这种方式,也必须进行一些字符串解析。

如果你想有你有做2个日期的持续时间,并从更高的一个

0

减去低以下是此一个变通。首先需要解析字符串,然后生成数据库保存的开始日期和结束日期/时间

$d = 'Sun Oct 5, 2014 10am to 11am PDT'; 
$de = explode('to',$d); 
$from = DateTime::createFromFormat('D M d, Y Ha', trim($de[0])); 
$to_time = explode(' ',trim($de[1])); 
$to = DateTime::createFromFormat('Y-m-d Ha',$from->format("Y-m-d").' '.trim($to_time[0])); 
echo $from->format("Y-m-d H:i:s"); 
echo '<br />'; 
echo $to->format("Y-m-d H:i:s"); 
echo '<br />';