Как отформатировать время в CakePHP? - PullRequest
1 голос
/ 10 июля 2011

Я использую CakePHP 1.3, чтобы написать приложение, и я создаю поле datetime в базе данных.

И я называю это echo $post['Post']['created']; и получаю что-то вроде 2011-07-03 00:00:00.

Мне бы хотелось, чтобы это выглядело как Jan 1st 2008, 19:25.

Я вижу некоторую документацию в 7.12.1 Форматирование (руководство по CakePHP), но как это реализовать?

Ответы [ 3 ]

4 голосов
/ 10 июля 2011

Чтобы сделать это с помощью встроенного хелпера Time, используйте:

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

тогда по вашему мнению:

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

Если вы ищете производительность (хотя и незначительную), вам лучше использовать date напрямую, как предлагает другой автор, без дополнительных затрат на загрузку помощника Time.

Но помощник проще и быстрее реализовать, не говоря уже о том, что он открывает другие вспомогательные функции, поэтому он будет зависеть от ваших потребностей.

3 голосов
/ 10 июля 2011

Вам необходимо отформатировать дату, используя 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 .

0 голосов
/ 29 сентября 2015

Самый простой способ сделать это в Cake - использовать помощник времени. В предыдущем посте был дан правильный ответ на CakePHP 2.x, однако вы попросили найти решение для 1.3. В вашем контроллере напишите:

var $helpers = array('Time');

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

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

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

...