PHP マニュアル
前のページ |  | 次のページ

# strftime

(PHP 3, PHP 4, PHP 5)

strftime -- ローカルな設定に基づきローカルな日付・時間をフォーマットします

## 説明

string strftime ( string format [, int timestamp] )

指定した timestamp または timestamp が指定されていない場合に現在のローカル時間を用いて指定した フォーマット文字列に基づき文字列をフォーマットして返します。 月および曜日の名前およびその他の言語依存の文字列は、 setlocale() でセットされた現在のロケールに関係 します。

次の変換指定子は、フォーマット文字列として認識されます。

- %a - 現在のロケールに基づく短縮された曜日の名前

- %A - 現在のロケールに基づく完全な曜日の名前

- %b - 現在のロケールに基づく短縮された月の名前

- %B - 現在のロケールに基づく完全な月の名前

- %c - 現在のロケールに基づく適当な日付と時間の表現

- %C - 世紀(年を100で割り、整数に丸めたもの。00〜99)

- %d - 日付を10進数で。(01から31)

- %D - %m/%d/%yと同じ

- %e - 月単位の日付を10進数で表したもの。日付が1桁の場合は、前に 空白を一つ付けます。(' 1'〜'31')

- %g - 世紀以外は %G と同じ。

- %G - ISO 週番号 (%V を参照) に対応する 4 桁の年。 これは ISO 週番号が前年もしくは次年に属するかによって使用される年が 異なる事を除き %Y と同じフォーマットと値です。

- %h - %bと同じ。

- %H - 時間を24時間表示の10進数で(00から23まで)

- %I - 時間を12時間表示の10進数で(01から12までの範囲)

- %j - 年間での日付を10進数で表現 (001から366)

- %m - 月を10進数で表現 (01から12)

- %M - 分を10進数で表現

- %n - 改行文字

- %p - 指定した時間により `am' または `pm' 、または 現在のロケールに対応した文字列

- %r - a.m.およびp.m.表記で表した時間

- %R - 24時間表記で表した時間

- %S - 秒を10進数で表現

- %t - タブ文字

- %T - 現在の時間。%H:%M:%Sに等しい。

- %u - 10進数表記の曜日で1〜7の範囲。1が月曜日。

- %U - 年間で何番目の週であるかを 10 進数で表現。 年間で最初の日曜を最初の週の最初の日として数えます。

- %V - ISO 8601:1988で規定された現在の年の週番号の10進数表現で 01から53までの範囲となります。1は最初の週でその週は現在の年に 最低4日はあります。週は月曜日から始まります。

- %W - 現在の年で何番目の週であるかを10進数で表現。 年間で最初の月曜を最初の週の最初の日として数えます。

- %w - 曜日を10進数で表現。日曜は0になります。

- %x - 時間を除いた日付を現在のロケールに基づき表現します。

- %X - 日付を除いた時間を現在のロケールに基づき表現します。

- %y - 世紀の部分を除いた年を10進数として表現。(00から99までの範囲)

- %Y - 世紀を含む年を 10進数で表現

- %Z - タイムゾーンまたはその名前または短縮形

- %% - 文字リテラル`%'

> 注意: (上記の)全ての変換指定子が使用するCライブラリでサポートされてい ない可能性があります。この場合、PHPの strftime()で該当する変換指定子はサポートされ ません。 また、全てのプラットフォームが負の値のタイムスタンプをサポートしている わけではないため、日付の範囲はUNIX時（1970年1月1日）以降に制限されます。 これは例えば、Windowsや幾つかのLINUXディストリビューションやその他のOSにおいて、 %e, %T, %R, %D （あるいはこれ以外も）が Jan 1, 1970年1月1日より前の日付について動作しない ということです。

例 1. strftime()の例
`<?php setlocale(LC_TIME, "C"); echo strftime("%A"); setlocale(LC_TIME, "fi_FI"); echo strftime(" in Finnish is %A,"); setlocale(LC_TIME, "fr_FR"); echo strftime(" in French %A and"); setlocale(LC_TIME, "de_DE"); echo strftime(" in German %A.\n"); ?>`

この例は、各ロケールがシステムにインストールされている場合に動作します。

> 注意: ISO 8601:1988 week numbers に基づいている %G と %V は、 もしナンバリングシステムが完全に理解されていなければ 期待とは違う結果をもたらします。 上の %V と、下記の例を見てください。

例 2. ISO 8601:1988 週番号の例
`<?php /* December 2002 / January 2003 ISOWk M Tu W Thu F Sa Su ----- ---------------------------- 51 16 17 18 19 20 21 22 52 23 24 25 26 27 28 29 1 30 31 1 2 3 4 5 2 6 7 8 9 10 11 12 3 13 14 15 16 17 18 19 */ // Outputs: 12/28/2002 - %V,%G,%Y = 52,2002,2002 echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n"; // Outputs: 12/30/2002 - %V,%G,%Y = 1,2003,2002 echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n"; // Outputs: 1/3/2003 - %V,%G,%Y = 1,2003,2003 echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n"; // Outputs: 1/10/2003 - %V,%G,%Y = 2,2003,2003 echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n"; /* December 2004 / January 2005 ISOWk M Tu W Thu F Sa Su ----- ---------------------------- 51 13 14 15 16 17 18 19 52 20 21 22 23 24 25 26 53 27 28 29 30 31 1 2 1 3 4 5 6 7 8 9 2 10 11 12 13 14 15 16 */ // Outputs: 12/23/2004 - %V,%G,%Y = 52,2004,2004 echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n"; // Outputs: 12/31/2004 - %V,%G,%Y = 53,2004,2004 echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n"; // Outputs: 1/2/2005 - %V,%G,%Y = 53,2004,2005 echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n"; // Outputs: 1/3/2005 - %V,%G,%Y = 1,2005,2005 echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n"; ?>`

setlocale()、mktime()、 strptime(), Open Groupによる strftime()の定義も参照ください。

前のページ | ホーム | 次のページ
mktime | 上に戻る | strptime