php - Symfony2 : DateTime object not working

标签 php symfony datetime doctrine-orm

我正在使用 DateTime 对象,但在获取特定日期的事件时遇到了这个问题。

在 Controller 中我执行以下查询:

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

这个查询的结果是null,但是当我这样定义参数date时:

$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,将其与 2014-01-14 00:00:00 的 DBMS 值进行比较code> 将不匹配记录

尝试以下操作:

$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
));

这行得通吗?

关于php - Symfony2 : DateTime object not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27946497/

相关文章:

python - 在django模型中默认输入本地时间的当前日期时间

php - 将 Mysql 行值分配给同一 PHP 文件中的另一个查询

php - Composer 安装的 Amazon AWS SES PHP 类不可用

datetime - 时间增量的绘图轴,格式为 DD HH :MM:SS with matplotlib

php - 表单域不显示

.htaccess - 仅使用 .htaccess 让 Symfony2 在共享主机上工作

android - 如何在查询 sqlite 时格式化 DateTime 列?

javascript - 未捕获的 InvalidValueError : not a LatLngBounds or LatLngBoundsLiteral: unknown property f

javascript - 授权登录时 Laravel 超时

带有 Gmail 的 PHPMailer(我可以从 name@mypersonaldomain.com 发送电子邮件吗?)