【发布时间】:2012-11-03 04:28:08
【问题描述】:
我有一个有声读物数据库。其中一些书的长度超过 24 小时。我很难创建一个将映射 length 属性超过 24 小时的学说实体,因为 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;
知道如何进行这项工作吗?我也在使用 Symfony2。
【问题讨论】:
-
将长度存储为整数(以分钟或秒为单位)。然后转换为 h:m:s。
-
是的,我最终做到了。我尝试不这样做,但在尝试“违背常规”一段时间后,我现在看到 PHP DateTime 类根本不是设计用于以这种方式处理时间的,它旨在处理 date 时间.最好以秒或分钟为单位测量这样的间隔。也许可以使用 DateInterval 创建自定义 Doctrine 类型。如果有人做到了,我想看看!
标签: datetime symfony doctrine-orm symfony-2.1