Skip to content

TimeHelper

class TimeHelper(View $view, array $settings = array())

Time ヘルパーはメッキをかぶせることであなたの時間を節約します。 Time ヘルパーには時間に関する情報を手早く処理するための2つの役割があります。

  1. 時間を形式にそって文字列にすることができます。
  2. 時間を調べることができます。ただし時間を変えることはできません。

Changed in version 2.1

TimeHelperCakeTime クラスに含まれるようにリファクタリングされました。 これにより、ビューの外からでもより簡単に使えるようになりました。 ビューで使う際は TimeHelper クラスからこれらのメソッドを使うことができます。 また、通常のヘルパーメソッドのように $this->Time->method($args); と 呼び出すこともできます。

ヘルパーの使い方

Time ヘルパーの基本的な使い道は、ユーザーのタイムゾーンにあった日時に時刻を調整することです。 それでは掲示板を例にとりましょう。あなたの掲示板は世界各地からいろんな時間帯にたくさんのユーザーが メッセージを投稿します。時刻を GMT+0 または UTC で保存すると、投稿時刻を簡単に管理できるでしょう。 あなたのアプリケーションで扱うタイムゾーンを確実に GMT+0 へするために、 app/Config/core.phpdate_default_timezone_set('UTC'); という記述のコメントアウトを解除します。

次にタイムゾーンのフィールドをユーザーのテーブルに追加して、ユーザーがタイムゾーンを設定できるように 必要な修正を加えます。これでログインしているユーザーのタイムゾーンが分かるようになり、 Time ヘルパーを 使って投稿時刻を補正することができるようになりました。 :

echo $this->Time->format(
  'F jS, Y h:i A',
  $post['Post']['created'],
  null,
  $user['User']['time_zone']
);
// GMT+0 での時刻が August 22nd, 2011 11:53 PMの場合、
// タイムゾーンが GMT-8 の場合は August 22nd, 2011 03:53 PM、
// GMT+10 の場合は August 23rd, 2011 09:53 AM が表示されます。

Time ヘルパーのメソッドは多くが $timezone パラメーターを持っています。このパラメーターは タイムゾーンを表す文字列か、 DateTimeZone クラスのインスタンスを渡すことができます。

フォーマット

method CakeTime::convert($serverTime, $timezone = NULL)

method CakeTime::convertSpecifiers($format, $time = NULL)

method CakeTime::dayAsSql($dateString, $field_name, $timezone = NULL)

method CakeTime::daysAsSql($begin, $end, $fieldName, $timezone = NULL)

method CakeTime::format($date, $format = NULL, $default = false, $timezone = NULL)

method CakeTime::fromString($dateString, $timezone = NULL)

method CakeTime::gmt($dateString = NULL)

method CakeTime::i18nFormat($date, $format = NULL, $invalid = false, $timezone = NULL)

method CakeTime::nice($dateString = NULL, $timezone = NULL, $format = null)

method CakeTime::niceShort($dateString = NULL, $timezone = NULL)

method CakeTime::serverOffset()

method CakeTime::timeAgoInWords($dateString, $options = array())

method CakeTime::toAtom($dateString, $timezone = NULL)

method CakeTime::toQuarter($dateString, $range = false)

method CakeTime::toRSS($dateString, $timezone = NULL)

method CakeTime::toUnix($dateString, $timezone = NULL)

method CakeTime::toServer($dateString, $timezone = NULL, $format = 'Y-m-d H:i:s')

method CakeTime::timezone($timezone = NULL)

method CakeTime::listTimezones($filter = null, $country = null, $options = array())

時間のテスト

method CakeTime::isToday($dateString, $timezone = NULL)

method CakeTime::isThisWeek($dateString, $timezone = NULL)

method CakeTime::isThisMonth($dateString, $timezone = NULL)

method CakeTime::isThisYear($dateString, $timezone = NULL)

method CakeTime::wasYesterday($dateString, $timezone = NULL)

method CakeTime::isTomorrow($dateString, $timezone = NULL)

method CakeTime::isFuture($dateString, $timezone = NULL)

method CakeTime::isPast($dateString, $timezone = NULL)

method CakeTime::wasWithinLast($timeInterval, $dateString, $timezone = NULL)

Released under the MIT License.