2011-07-10 3 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.php и http://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 - использовать вспомогательный помощник времени. Предыдущее сообщение дает правильный ответ для CakePHP 2.x, однако вы попросили решение для версии 1.3. в контроллере записи:

var $helpers = array('Time'); 

На ваш взгляд пишут:

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

Это работает для меня за последние 3 года.

Смежные вопросы