根據我的理解,在Zend Framework中處理日期的最好方法是從數據庫中選擇它們作爲Unix時間戳。從Zend_Date對象中自動選擇數據庫中的日期
Quick Creation of Dates from Database Date Values
// SELECT UNIX_TIMESTAMP(my_datetime_column) FROM my_table
$date = new Zend_Date($unixtimestamp, Zend_Date::TIMESTAMP);
,我認爲這是一個痛苦,實際上是存在於甲骨文沒有簡單的方法要麼選擇日期爲Unix的時間戳或ISO-8601格式 - 這兩種格式Zend_Date
最清楚。
但我確實寫了一個函數來選擇日期作爲PL/SQL中的unix時間戳,所以我現在可以實際做到這一點。
使用Zend_Db_Expr
,現在我可以選擇我的時間存在的Unix時間戳:
$select = $db->select()
->from(array('p' => 'products'),
array(
'product_id',
'product_date' => new Zend_Db_Expr('toUnixTimestamp(product_date)')
)
);
$results = $db->fetchAll($select);
你會使用類似的查詢任何關係數據庫管理系統 - 最有時間戳功能。
我覺得這是煩人,因爲現在我通過$必須循環結果時間戳轉換爲手動Zend_Date對象:
foreach($results as $result){
$productDate = new Zend_Date($result['product_date'], Zend_Date::TIMESTAMP);
echo $productDate->toString('dd/MMM/yyyy HH:mm:ss');
}
我希望我的模型返回,其中時間戳已經轉化爲Zend_Date的運算$結果。我不想在每個數據訪問函數中寫一個循環來爲我做這件事。
所以要到我的實際問題的要點:
有誰知道與Zend_Db的一種方式,來建立某種形式的後處理上的結果集,從而把時間戳Zend_Date的運算自動對象?
這是假設你使用Zend_Db_Table類並指定我會做同樣的方式模型 – gmcrist 2009-10-30 11:18:22
行類。你可以在nZend_Db_Table之外的任何其他持久層中做同樣的事情;) – 2009-10-30 12:57:44
代碼示例很好的回答! – 2009-10-30 21:01:28