【发布时间】:2017-05-31 08:52:32
【问题描述】:
我正在我的 Symfony CRM 上实施 Bootstrap 日期范围选择器,以便我的客户选择特定假日季节的日期范围。
但是,在将数据添加到数据库时,它需要采用开始日期和结束日期的格式。数据库需要一个 DateTime 对象,但我希望它在前端对客户端更具可读性。
这是提交后传递回控制器的内容:
20/5/2017 - 20/7/2017
在我的控制器中,我使用以下代码:
$dates = $form['startDate']->getData();
$date_bits = explode(" - ",$dates);
$startDate = \DateTime::createFromFormat('Y-m-d',$date_bits[0]);
$endDate = \DateTime::createFromFormat('Y-m-d',$date_bits[1]);
除非我坚持到数据库,否则我会收到此错误:
致命错误:在布尔值中调用成员函数 format() /vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeType.php 上线 53
所以我尝试了这个方法:
$startDate = new \DateTime(str_replace("/","-",$date_bits[0]));
$endDate = new \DateTime(str_replace("/","-",$date_bits[1]));
$startDate = $startDate->format('Y-m-d');
$endDate = $endDate->format('Y-m-d');
但我收到同样的错误。我在这里做错了什么?
编辑:实际上对于第二个代码块,错误状态是我在字符串上调用format()。
【问题讨论】:
-
DateTime::createFromFormat('d/m/Y')有什么问题?阅读date & time formats understood bystrftime()。 -
它需要像
Y-m-d这样进入数据库,因为这是日期字段所期望的。 -
DateTime::createFromFormat('d/m/Y', $date_bits[0])->format('Y-m-d')
标签: php symfony datetime doctrine-orm