Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 原则2:如何将长度大于24小时的输入;时间“;领域_Datetime_Symfony_Doctrine Orm_Symfony 2.1 - Fatal编程技术网

Datetime 原则2:如何将长度大于24小时的输入;时间“;领域

Datetime 原则2:如何将长度大于24小时的输入;时间“;领域,datetime,symfony,doctrine-orm,symfony-2.1,Datetime,Symfony,Doctrine Orm,Symfony 2.1,我有一个有声读物数据库。有些书的长度超过24小时。我很难创建映射长度超过24小时的length属性的条令实体,因为time字段接受DateTime对象,任何超过24小时的时间都会添加到第二天,因此33小时变为9小时 <?php namespace Entity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity */ class Audiobook { /** * @var \DateTime $length

我有一个有声读物数据库。有些书的长度超过24小时。我很难创建映射长度超过24小时的
length
属性的条令实体,因为
time
字段接受
DateTime
对象,任何超过24小时的时间都会添加到第二天,因此33小时变为9小时

<?php

namespace Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 */
class Audiobook
{
    /**
     * @var \DateTime $length
     *
     * @ORM\Column(name="length", type="time")
     */
     protected $length;

看起来您实际上是在寻找,而不是,因为后面的一个表示时间上的某个时刻,而“长度”不能是


这意味着没有从
DateInterval
到SQL类型的映射(还没有),甚至我也不知道有任何类似SQL类型的间隔。您可以做的是创建自己的类型,将
DateInterval
映射到
VARCHAR
格式的
。然后转换成h:m:s。是的,我最后就是这么做的。我试着不这样做,但在尝试了一段时间后,我现在看到PHP DateTime类并不是这样设计来处理时间的,它是设计来处理日期时间的。最好以秒或分钟来测量这样的间隔。也许可以使用DateInterval创建自定义的条令类型。如果有人成功了,我想看看!