2012-03-21 96 views
1

這是我目前的函數來獲取所有用戶:修改數據庫值

function get_all() { 
    return $this->db->get($this->tableName)->result(); 
} 

現在我有一個「前的時間」改變MySQL的DATETIME到

timespan(human_to_unix($datetime),time()); 
功能

如何在將數組傳遞給控制器​​和視圖之前更改get_all生成的數組中的所有mysql日期?

其次, 在模型中這樣做是正確的還是應該在控制器中完成?

+0

爲什麼不嘗試循環? – safarov 2012-03-21 11:01:21

+0

@safarov我不確定在模型類中是否允許循環該數組 – Simon 2012-03-21 13:13:35

回答

1

我會說這個模型很好。

您有許多選項可簡單地遍歷數組 (例如,

$results = $this->db->get($this->tableName)->result(); 
foreach($results as $key=>$value) 
{ 
    if($key=="<name of date time field>") 
    { 
    $results[$key]=timespan(human_to_unix($value),time()); 
    } 
} 

return $ results;

如果5.3 PHP 使用類似array_walk匿名函數

$results = $this->db->get($this->tableName)->result(); 

    array_walk($results, function (&$v, $k) { if($k=="<name of date time field>"){$v=timespan(human_to_unix($v),time()} }); 
0

我想事端,如:

function get_all() { 
    $arr = $this->db->get($this->tableName)->result(); 
    foreach(array_keys($arr) as $h) 
     $arr[$h]->datetime = timespan(human_to_unix($arr[$h]->datetime),time()); 

    return $arr; 
} 

我不能告訴什麼功能timespanhuman_to_unix正是這麼做。