如何让document2以字符串形式返回datetime?

um6iljoc  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(301)

我对原则2.5和日期时间字段有问题。
我的数据库中有几个datetime字段,在1.2条规则中从来没有遇到过任何问题
现在我正在将我的应用程序升级到原则2.5,并且querybuilder和datetime字段有问题。
我的问题是:

$data = $em->createQueryBuilder()
    ->select('u.id, u.user_id, u.datecreate')
    ->from(self::CART_TABLE, 'u')
    ->setMaxResults(1)
    ->getQuery()->getOneOrNullResult(HYDRATE_ARRAY);

结果如下:

Array
(
    [id] => 1
    [user_id] => 16
    [datecreate] => DateTime Object
        (
            [date] => 2015-03-06 20:02:26.000000
            [timezone_type] => 3
            [timezone] => America/Sao_Paulo
        )

)

原则1.2退货:

Array
(
    [id] => 1
    [user_id] => 16
    [datecreate] => 2015-03-13 18:22:35
)

实体中的变量声明为:

/**
 * @var \DateTime
 *
 * @ORM\Column(name="datecreate", type="datetime", nullable=true)
 */
private $datecreate;

如果我把'type=“datetime”'改成'type=“string”'就行了。
我实际上需要返回一个字符串,而不是datetime对象。我怎样才能做到这一点?改变实体是唯一的方法吗?

9w11ddsr

9w11ddsr1#

你可以改变方法,比如

public function getDatecreate()
{
   return $this->datecreate->format('Y-m-d H:i:s');
}
dzhpxtsq

dzhpxtsq2#

最后,我将所有getter和setter都改为“string”而不是“\datetime”,这就解决了我的问题。

相关问题