2012-11-03 50 views
2

我有一個有聲讀物數據庫。其中一些書的長度超過24小時。由於time字段接受DateTime對象,並且任何超過24小時的時間都會在第二天添加,因此33小時變爲9小時,因此我無法創建將映射length屬性超過24小時的映射屬性的原則實體。學說2:如何輸入長度超過24小時的「時間」字段

<?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。

+3

存儲長度爲整數(以分鐘或秒爲單位)。然後轉換爲h:m:s。 – meze

+0

是的,我最終這樣做了。我試圖不嘗試,但在嘗試「違背穀物」一段時間後,我現在看到PHP DateTime類根本沒有設計用這種方式處理時間,它設計用於* date *次。最好在幾秒或幾分鐘內測量這些間隔。也許可以使用DateInterval創建一個自定義的Doctrine類型。如果有人使用它,我希望看到它! – jcroll

回答

1

看起來你實際上是在尋找DateInterval而不是DateTime,因爲後面的代表了一個時間,「長度」不能。

這表示沒有從DateInterval到SQL類型(但?)的映射,甚至我根本不知道任何類間隔的SQL類型。你可以做的是創建一個自己的類型,該地圖DateInterval上的VARCHAR的格式爲PT28H

相關問題