gpt4 book ai didi

php - 如果 Doctrine 结果包含日期时间,则会崩溃

转载 作者:行者123 更新时间:2023-11-29 21:46:38 24 4
gpt4 key购买 nike

我正在使用 Symfony2.6、Doctrine 和 MySql 数据库。如果以下查询的结果不为空,Symfony 将崩溃并显示消息:“可捕获的 fatal error :DateTime 类的对象无法转换为字符串”。数据库字段时间戳是日期时间。

           $query = "SELECT a
FROM TestBundle:Test a
where a.test = :test
and a.timestamp >= :from
and a.timestamp <= :to
order by a.timestamp";

$query = $em ->createQuery($query)
->setParameter('test', $test)
->setParameter('from', $formdata['from'])
->setParameter('to', $formdata['to']);

$result = $query->getResult();

为什么 symfony 尝试将日期时间转换为字符串?

最佳答案

我会在这里猜测,因为我们没有足够的代码来证明可能出现的错误,所以我猜这就是你正在做的事情。如果没有,请提供更多代码。

实体

/**
* @var DateTime
*/
$protected $timestamp;

/**
* @return DateTime
*/
public function getTimestamp()
{
return $this->timestamp;
}

你可能在做什么

echo $a->getTimestamp()

你应该做什么

echo $a->getTimestamp()->format('Y-m-d H:i:s')

示例

echo 'CREATING A DATETIME STRING FROM A DATETIME OBJECT';
echo '<br />';
$objectDatetime = new DateTime();
$stringDatetime = $objectDatetime->format('Y-m-d H:i:s');
echo $stringDatetime;

echo '<hr />';

echo 'CREATING A DATETIME OBJECT FROM A DATETIME STRING';
echo '<br />';
$objectDatetime2 = new DateTime($stringDatetime);
$stringDatetime2 = $objectDatetime2->format('Y-m-d H:i:s');
echo $stringDatetime2;
<小时/>

更新

我也会做如下的事情。不过,欢迎改进,只是给您一个想法。

->setParameter('from', (trim($formdata['from'])) ? new \DateTime($formdata['from']) : null)

关于php - 如果 Doctrine 结果包含日期时间,则会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34063060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com