指定した 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日より前の日付について動作しない ということです。
注意: ISO 8601:1988 week numbers に基づいている %G と %V は、 もしナンバリングシステムが完全に理解されていなければ 期待とは違う結果をもたらします。 上の %V と、下記の例を見てください。
setlocale()、mktime()、 strptime(), Open Groupによる strftime()の定義も参照ください。