Time ヘルパーはその名の通り、あなたの時間を節約するために使います。これは時間に関連する情報を素早く処理することができます。 Time ヘルパーは主に次のようなふたつのタスクを扱います。
時間の文字列をフォーマットする
時間を判定する(ただし基準となる時間は残念ながら変更することはできません)
fromString( $date_string )
fromString は文字列を用い、 strtotime を使って date オブジェクトに変換します。もし数字の文字列が渡されたら、まず整数型に変換し、 Unix エポック(GMT の1970年1月1日0時0分0秒)からの経過秒として扱います。「20081231」という値を渡した場合、 Unix エポックからの経過病として扱われるため、「Fri, Aug 21st 1970, 06:07」というような望ましくない結果が生成されます。
toQuarter( $date_string, $range = false )
toQuarter は与えられた日時がどの四半期に属するか、1、2、3 または 4 という値を返します。もし range が true にセットされていたら、与えられた日時が属する四半期の開始日と終了日を「2008-03-31」という形式で返します。
toUnix( $date_string )
toUnix は fromString のラッパです。
toAtom( $date_string )
toAtom は日時を文字列で「2008-01-12T00:00:00Z」というように、 Atom フォーマットで返します。
toRSS( $date_string )
toRSS は日時を文字列で「Sat, 12 Jan 2008 00:00:00 -0500」というように、 RSS フォーマットで返します。
nice( $date_string = null )
nice は日付文字列を用い、「Tue, Jan 1st 2008, 19:25」というフォーマットで返します。
niceShort( $date_string = null )
niceShort は日付文字列を使い、「Jan 1st 2008, 19:25」というフォーマットで出力します。 date オブジェクトが今日のものであれば、フォーマットは「Today, 19:25」というようになり、昨日のものであれば「Yesterday, 19:25」というようになります。
daysAsSql( $begin, $end, $fieldName, $userOffset = NULL )
daysAsSql は「($field_name >= '2008-01-21 00:00:00') AND ($field_name <= '2008-01-25 23:59:59')」という文字列を返します。これはある日時から別の日時の間のレコードを探すときに便利です。
dayAsSql( $date_string, $field_name )
dayAsSql は daysAsSql と同じフォーマットの文字列を作成しますが、 date オブジェクトを一つしか必要としません。
timeAgoInWords( $datetime_string, $options = array(), $backwards = null )
timeAgoInWords は日付時刻文字列(PHPのstrtotime()関数かMySQLのdatetimeフォーマットとして解釈できるもの)を用い、それを「3 weeks, 3 days ago」という分かりやすい単語のフォーマットに変換します。 $backwards に true を渡すと、未来にセットされた時間を「on 31/12/08」というフォーマットで特に宣言します。
オプション |
説明 |
---|---|
format |
日付のフォーマット。デフォルトは「on 31/12/08」という形。 |
end |
単語や日付のフォーマットを代わりに使わない遮断ポイントを決定します。例えば「+1 month」というようにします。 |
relativeTime( $date_string, $format = 'j/n/y' )
relativeTime は本質的に timeAgoInWords の別名です。
gmt( $date_string = null )
gmt はグリニッジ標準時(GMT)にセットした日時を整数で返します。
format( $format = 'd-m-Y', $date_string)
format は PHP の date 関数のラッパです。
関数 |
フォーマット |
---|---|
nice |
Tue, Jan 1st 2008, 19:25 |
niceShort |
|
daysAsSql |
($field_name >= '2008-01-21 00:00:00') AND ($field_name <= '2008-01-25 23:59:59') |
dayAsSql |
($field_name >= '2008-01-21 00:00:00') AND ($field_name <= '2008-01-21 23:59:59') |
|
|
gmt |
1200787200 |
isToday
isThisWeek
isThisMonth
isThisYear
wasYesterday
isTomorrow
wasWithinLast
上記の関数は全て、渡した日時の文字列をもとに true または false
を返します。 wasWithinLast
は追加の $time_interval
オプションを用います。
wasWithinLast( $time_interval, $date_string )
wasWithinLast
は「3
months」というフォーマットで、秒、分、時間、日、週、月、そして年(複数あるいは単数)を時間の範囲として用います。時間の範囲がタイプミスなどで認識できない場合、デフォルトでは日として扱われます。