页面内容

时间

class Cake\View\Helper\TimeHelper(View $view, array $config = [])

TimeHelper 允许快速处理与时间相关的信息。TimeHelper 主要有两个任务可以执行

  1. 它可以格式化时间字符串。

  2. 它可以测试时间。

使用助手

TimeHelper 的常见用途是偏移日期和时间以匹配用户的时区。以论坛为例。你的论坛有许多用户,他们可能在世界任何地方的任何时间发布消息。管理时间的办法是将所有日期和时间保存为 GMT+0 或 UTC。取消 config/bootstrap.php 中的 date_default_timezone_set('UTC'); 行的注释,以确保你的应用程序的时区设置为 GMT+0。

接下来,在你的用户表中添加一个时区字段,并进行必要的修改,以允许你的用户设置他们的时区。现在我们知道了登录用户的时区,我们可以使用 TimeHelper 来修正帖子的日期和时间。

echo $this->Time->format(
  $post->created,
  \IntlDateFormatter::FULL,
  false,
  $user->time_zone
);
// Will display 'Saturday, August 22, 2011 at 11:53:00 PM GMT'
// for a user in GMT+0. While displaying,
// 'Saturday, August 22, 2011 at 03:53 PM GMT-8:00'
// for a user in GMT-8

TimeHelper 的大多数功能都是为从旧版 CakePHP 升级的应用程序提供向后兼容的接口而设计的。由于 ORM 为每个 timestampdatetime 列返回 Cake\I18n\Time 实例,因此你可以使用其中的方法来完成大多数任务。例如,要了解可接受的格式字符串,请查看 Cake\I18n\Time::i18nFormat() 方法。