Alf*_*edo 5 php datetime symfony doctrine-orm
我正在使用DateTime对象并遇到此问题以获取特定日期的活动.
在控制器中,我执行以下查询:
$date = new \DateTime('today');
$activity = $em->getRepository('MyBundle:myEntity')->findOneBy(array(
'activity_date' => $date
));
Run Code Online (Sandbox Code Playgroud)
此查询的结果是null,但是当我以这种方式定义参数日期时:
$date = new \DateTime('Wednesday, ?January ?14, ?2015');
Run Code Online (Sandbox Code Playgroud)
我得到了与此日期匹配的活动.为什么不起作用today?
Jov*_*vic -3
我相信评论者@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
));
Run Code Online (Sandbox Code Playgroud)
这行得通吗?
| 归档时间: |
|
| 查看次数: |
496 次 |
| 最近记录: |