2011-07-10 29 views
1

我正在使用CakePHP 1.3來編寫一個應用程序,並且我在數據庫中創建了一個datetime字段。如何在CakePHP中設置時間格式?

而我把它稱爲echo $post['Post']['created'];,我得到了類似2011-07-03 00:00:00的東西。

我想讓它看起來更像Jan 1st 2008, 19:25

我在7.12.1 Formatting(CakePHP手冊)中看到一些文檔,但是如何實現呢?

+0

[格式化CakePHP的日期字符串(http://stackoverflow.com/questions/3520982/formatting-date-string-in-cakephp) – givanse

回答

3

您需要格式化日期使用date()。見http://php.net/manual/en/function.date.phphttp://php.net/manual/en/function.strtotime.php

echo date('M j Y, h:i', strtotime($post['Post']['created'])); 

更好的解決方案是創建一個幫手。瞭解這些最好的地方是CakePHP manual

+0

感謝,這就像一個魅力 – Patrioticcow

+0

工作的可能重複,我建議使用傭工和包裝功能! – mark

+0

對我來說現在有點太多了,但如果你有一個教程或我可以得到的一些代碼,我會挑釁地看看我應該怎樣做正確的方式 – Patrioticcow

4

要做到這一點使用內置的蛋糕Time幫手,使用此:

// controller: 
$helpers = array('Time'); 

然後在您的視圖:

echo $this->Time->nice($post['Post']['created']); 
// outputs Tue, Jan 1st 2008, 19:25". 

如果你正在尋找的表現(雖然可以忽略不計),你直接使用date會更好,因爲另一張海報表明,沒有加載Time幫手的開銷。

但助手更容易實施,更不用說打開其他助手功能,所以它顯然取決於你的需求。

0

在Cake中最簡單的方法是使用time helper。以前的文章給出了CakePHP 2.x的正確答案,但是您要求提供1.3的解決方案。 在你的控制器寫:

var $helpers = array('Time'); 

在你看來寫:

echo $time->niceShort($post['Post']['created']); 

這工作對我來說,過去的3年。