在我的应用程序中,我从表中检索时间戳,格式为 2009-08-18 12:09:01 。我需要将其更改为2009年8月18日或2009年8月18日。如何在CakePHP中实现这一目标?
是否有内置方法?
答案 0 :(得分:8)
您可以使用核心TimeHelper
至format和test日期/时间。
要使用它,您需要将TimeHelper
添加到控制器的$helpers
数组中:
var $helpers = array('Time');
然后从视图中您可以设置日期/时间变量的格式:
// assuming $variable['Model']['field_name'] = '2009-09-09 12:00:00':
echo $this->Time->format('F jS, Y', $variable['Model']['field_name']);
// => 'September 9th, 2009'
echo $this->Time->format('j M Y', $variable['Model']['field_name']);
// => '9 Sep 2009'
由于此方法最终是一个包装器,因此请使用PHP文档中的date()
函数表来确定如何编写格式字符串。
从1.3开始,如果你颠倒参数的顺序(首先是日期,格式化第二个),它将尝试尊重你的语言环境的日期格式。上述顺序仍然可用于向后兼容。迁移指南中this page底部的更多详细信息。
答案 1 :(得分:2)
答案 2 :(得分:2)
使用deizel提到的时间助手。
我会查看文件/cake/libs/view/helpers/time.php,看看是否有一个函数提供了你所追求的时间格式。
相对时间函数特别好:
<?php echo $time->nice($dateValue); ?>
<?php echo $time->timeAgoInWords($dateValue); ?>
您可以通过阅读CakePHP来源学到很多东西。
答案 3 :(得分:2)
这应该做:
<?php echo date('M js Y', strtotime($post['Post']['date'])); ?>
此处,Post是模型的名称,date是字段名称。