Cakephp 3:时间格式化HTML助手无法正常工作

时间:2015-12-14 04:23:25

标签: cakephp cakephp-3.0

我尝试更改时间格式如下代码

<?php echo $this->Time->format($news->created,'%B %e, %Y'); ?>

我的愿望输出如August 22, 2011。但我发现输出只有%

我还使用了名称空间use Cake\View\Helper\TimeHelper;

4 个答案:

答案 0 :(得分:1)

Cake 3.x从datetime和timestamp字段返回Cake\I18n\Time的实例。你可以这样做:

// Using PHPs DateTime format string
<?= $news->created->format('F d, Y') ?>

// Using ICU date formatting string
<?= $news->created->i18nFormat('MMMM d, Y') ?>

请注意,TimeHelper::format()只是Time::i18nFormat()

的快捷方式
<?= $this->Time->format($news->created, 'MMMM d, Y') ?>
  1. PHP format parameters
  2. ICU data/time format parameters

答案 1 :(得分:0)

我可以知道这种格式是否符合您的要求吗?

<?php echo $news->created->format('F d, Y'); ?>

我不知道你是否想要%,但如果你把%符号放进去也可以。

顺便提一下'%B %e, %Y',我获得%439%的亚洲/香港,2011年。

参考:PHP: DateCakePHP Time Formatting

答案 2 :(得分:-1)

echo $this->Time->format($news->created,'%B %e, %Y'); 

您的代码是正确的,但$ news-&gt;创建的日期格式应为Y-m-d或Y-M-d

答案 3 :(得分:-1)

   echo $this->Time->format( 'F jS, Y h:i A',  $post['Post']['created'], null,  $user['User']['time_zone']);

//  Will display August 22nd, 2011 11:53 PM for a user in GMT+0

// 8月22日,2011 03:53 PM GMT-8中的用户 //和2011年8月23日09:53 GMT + 10;

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html