Symfony2:DateTime对象不起作用


Symfony2: DateTime object not working

我正在使用DateTime对象,并且遇到了此问题来获取特定日期的活动。

在控制器中,我执行以下查询:

$date = new 'DateTime('today');
$activity = $em->getRepository('MyBundle:myEntity')->findOneBy(array(
    'activity_date' => $date
));

此查询的结果是null,但是当我以这种方式定义参数日期时:

$date = new 'DateTime('Wednesday, ‎January ‎14, ‎2015');

我得到了与此日期匹配的活动。为什么today不起作用?

我相信评论者@prodigitalson是对的。当你说today这实际上是now 格式化为 YYYY-MM-DD HH:MM:SS .

现在,如果您的 DBMS 列属于 date 类型,DBMS 将首先规范化两个值,然后才继续比较。

如果传入参数的值为 2014-01-14 16:47:20 ,则将其与 DBMS 值 2014-01-14 00:00:00 进行比较将不匹配记录

请尝试以下操作:

$date = new 'DateTime(); // no need for explicit `today`
$date->setTime(0,0,0); // reset hours, minutes and seconds to 0
$activity = $em->getRepository('MyBundle:myEntity')->findOneBy(array(
    'activity_date' => $date
));

这行得通吗?