【问题标题】:How can I compare a DateTime object with doctrine 2.0 DateTime如何将 DateTime 对象与学说 2.0 DateTime 进行比较
【发布时间】:2018-06-11 16:39:37
【问题描述】:

我正在处理一个过滤器查询,该查询将返回特定日期之间的帖子,但是,我无法找到将 PHP DateTime 对象与数据库中的日期时间进行比较的方法。过滤器组件给我的日期是 m/d/Y 格式,数据库中的日期时间是 m/d/Y H:i:s 格式。

$posted_before = \DateTime::createFromFormat("m/d/Y", $posted_before);
$posted_before->format("m/d/Y H:i:s");
$query .= " AND t.posted_date >= $posted_before"; 

我正在使用 Doctrine 2.0

【问题讨论】:

  • 我尝试了你们的建议。我看到我试图注入对象。但是, 比较似乎不适用于拉取特定日期之前或之后的帖子。我打印出查询的那段,它看起来像这样: AND t.posted_date = '01/25/2012 09:57:57' ---
  • 请接受答案。

标签: php doctrine


【解决方案1】:

在我看来您正在将一个对象注入到您的字符串中,请尝试存储 format(); 的返回值。还要按照MySQL格式格式化日期:

$posted_before = \DateTime::createFromFormat("m/d/Y", $posted_before);
$posted_date = $posted_before->format("Y-m-d H:i:s");
$query .= " AND t.posted_date >= $posted_date"; 

【讨论】:

    【解决方案2】:

    不需要格式化Datetime对象,可以使用setParameter方法:

    $qb->where('t.posted_date >= :minDatetime');
    $qb->setParameter('minDatetime', $minDatetime);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 2018-09-16
      • 1970-01-01
      • 2018-04-13
      • 2016-11-24
      相关资源
      最近更新 更多