簡體   English   中英

在MySQL時間字段中使用Cake \\ I18n \\ Time

[英]Using Cake\I18n\Time with MySQL time fields

我正在嘗試從MySQL數據庫返回時間格式字段的列表,並使用Cake \\ I18n \\ Time類來操作它們。 當前,從數據庫中獲取數據時,當前日期用於這些字段。 我想為它們設置自己的日期(因為數據可以包含多個日期),但似乎找不到一個很好的解決方案。

到目前為止,我在測試期間的解決方案是使用Time::setTestNow($now)設置日期,然后在Entity中創建一個函數以正確設置日期,如下所示:

$newTime = new Time();
$newTime->hour($savedTime->format("H"))
->minute($savedTime->format("i"))
->second($savedTime->format("s"));

顯然,這似乎是為這些字段設置日期的一種相當繁瑣的方法。 我的應用程序中還有其他功能需要比較日期和時間(可以從另一個表中獲取日期),因此Time::setTestNow()似乎是正確設置正確日期和設置日期的錯誤方法,每個新時間的月份和年份似乎也很麻煩。

我還有其他方法可以用來設置從數據庫中提取時間的日期嗎? 我寧願在模型中擁有正確的時間,也不必每次都想使用時進行轉換)。

謝謝。

我還有其他方法可以用來設置從數據庫中提取時間的日期嗎?

實體訪問器。 另請參見虛擬屬性以實現此權利。 書中的例子:

class Article extends Entity
{
    protected function _getTitle($title)
    {
        return ucwords($title);
    }
}

只需在您自定義的getter中顯示日期和時間即可。

我將時間作為時間字段存儲在數據庫中,將日期作為日期字段存儲在另一個表中。 我需要能夠在時間上設置正確的日期,以便可以對其進行比較。

首先,這聽起來像是一個糟糕的設計。 如果必須將它們分開,為什么不能將它們合並保存在保存的第三個字段中? 但是,您可以在數據庫查詢本身中合並字段( 將日期和時間組合(合並)為datetime ),然后使用CakePHP ORM類型映射將datetime類型映射到該字段。 也許您很幸運,它將自動將其檢測為正確的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM