我如何使用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
不是我认为的那样。
答案 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);
第二个示例中的|
字符重置日期字符串,以便它可以第二次解析。