DateTime :: createFromFormat如何捕获特定的日期时间?

时间:2015-03-30 06:31:51

标签: php mysql date datetime

我如何使用DateTime :: createFromFormat捕获这样的日期的开始和结束时间:

Sunday, March 29, 2015<br />10:00 AM - 12:00 PM

我需要为MySQL的DATETIME数据类型重新格式化它。这是我的尝试:

$start_time = DateTime::createFromFormat('D, M d, Y*/*h:i A+', $element->plaintext);
$end_time = DateTime::createFromFormat('D, M d, Y?????????????????h:i A+', $element->plaintext);
$start_time->format('Y-m-d H:i:s');
$end_time->format('Y-m-d H:i:s');

我收到错误“致命错误:在布尔值上调用成员函数格式()...”这必须意味着$element->plaintext不是我认为的那样。

1 个答案:

答案 0 :(得分:0)

DateTime的通配符和分隔符有点奇怪。首先,*不会与空格字符匹配,您也无法使用*来匹配数字。

所以,你需要这样做:

$start_time = DateTime::createFromFormat('D, M d, Y* *h:i A+', $element->plaintext);
$end_time = DateTime::createFromFormat('D, M d, Y* *h:i A| - h:i A', $element->plaintext);

第二个示例中的|字符重置日期字符串,以便它可以第二次解析。

DEMO:https://eval.in/306698