如何在CakePHP中更改时间戳的格式?

时间:2009-09-09 09:21:40

标签: php cakephp timestamp

在我的应用程序中,我从表中检索时间戳,格式为 2009-08-18 12:09:01 。我需要将其更改为2009年8月18日或2009年8月18日。如何在CakePHP中实现这一目标?

是否有内置方法?

4 个答案:

答案 0 :(得分:8)

您可以使用核心TimeHelperformattest日期/时间。

要使用它,您需要将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)

您可以使用strptime将字符串解析为日期时间,然后strftime将其格式化为您想要的字符串。

答案 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是字段名称。