将详细字符串转换为Date PHP

时间:2014-11-21 06:24:04

标签: php mysql string parsing date

我最后用棍子的短端和一个非常详细的字符串作为日期:

Sun Oct 5, 2014 10am to 11am  PDT

我想将其转换为PHP Date对象,以便将其写入MySQL数据库。如果您注意到,它有一个"到",表示事件持续时间。我已经搜索了很多这种转换,并且没有找到任何不需要进行大量字符串解析的内容。我对所有建议和想法持开放态度。

2 个答案:

答案 0 :(得分:1)

因为这不是一个有效的时间或日期字符串,你不能解析它。即使你似乎不喜欢这种方式,你也必须进行一些字符串解析。

如果你想要有一个持续时间你必须做2个日期并从较高的一个减去较低的

答案 1 :(得分:0)

这是一个解决此问题的方法。首先需要解析字符串,然后生成DB保存的开始和结束日期/时间

$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 />';