strftimeとは? わかりやすく解説

strftime

(PHP 4, PHP 5)
strftime — ロケールの設定に基づいてローカルな日付・時間をフォーマットする

説明

string strftime ( string format [, int timestamp] )
指定した timestamp または timestamp が指定されていない場合に現在のローカル時間を用いて、 指定したフォーマット文字列に基づき文字列をフォーマットして返します。 月および曜日の名前、およびその他の言語依存の文字列は、 setlocale() で設定された現在のロケールを尊重して表示されます。
使用する C ライブラリで、すべての変換指定子がサポートされているとは限りません。 そのような場合、該当する変換指定子は PHP の strftime() ではサポートされません。 また、全てのプラットフォームが負のタイムスタンプをサポートしているわけではないため、 Unix Epoch (1970 年 1 月 1 日)以前の日付を扱えないかもしれません。 つまり、Windows や一部の Linux ディストリビューション、そしてその他のごく一部の オペレーティングシステム上では %e、%T、%R および %D (あるいはこれ以外も) が Jan 1, 1970 より前の日付について動作しないということです。 Windwos システム上でサポートされる変換指定子の概要については、 » MSDN のウェブサイト に掲載されています。

パラメータ

format
次の変換指定子は、フォーマット文字列として認識されます。
  • %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 が月曜日。

    警告
    Sun Solaris では日曜日を 1 と表しているようですが、 ISO 9889:1999 (現在の C 言語の標準規格) では「1 は月曜日」と明確に指定されています。

  • %U - 年間で何番目の週であるかを 10 進数で表現。 年間で最初の日曜を最初の週の最初の日として数えます。
  • %V - ISO 8601:1988 で規定された現在の年の週番号の 10 進数表現で、 01 から 53 までの範囲となります。1 は最初の週で、その週は現在の年に 最低 4 日はあります。週は月曜日から始まります (指定したタイムスタンプの週番号に対応する年を表すには、 %G あるいは %g をしてください)。
  • %W - 現在の年で何番目の週であるかを 10 進数で表現。 年間で最初の月曜を最初の週の最初の日として数えます。
  • %w - 曜日を 10 進数で表現。日曜は 0 になります。
  • %x - 時間を除いた日付を現在のロケールに基づき表現します。
  • %X - 日付を除いた時間を現在のロケールに基づき表現します。
  • %y - 世紀の部分を除いた年を10進数として表現 (00 から 99 までの範囲)。
  • %Y - 世紀を含む年を 10 進数で表現。
  • %Z あるいは %z - タイムゾーンまたはその名前または短縮形。
  • %% - 文字リテラル`%'。

timestamp
オプションのパラメータ timestamp は、 integer 型の Unix タイムスタンプです。 timestamp が指定されなかった場合のデフォルト値は、 現在の時刻です。言い換えると、デフォルトは time() の返り値となります。

エラー / 例外

すべての日付/時刻関数は、 有効なタイムゾーンが設定されていない場合に E_NOTICE を発生させます。また、システム設定のタイムゾーンあるいは環境変数 TZ を使用した場合には E_STRICT を発生させます。 date_default_timezone_set() も参照ください。

変更履歴

バージョン説明
5.1.0 タイムゾーンがおかしい場合に E_STRICTE_NOTICE が発生するようになりました。

この例は、それぞれのロケールがシステムにインストールされている場合にのみ動作します。 例 430. 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");
?>

例 431. 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";

?>


注意

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

参考

setlocale()
mktime()
strptime()
» Open Group による strftime() の定義





固有名詞の分類

このページでは「PHP関数リファレンス」からstrftimeを検索した結果を表示しています。
Weblioに収録されているすべての辞書からstrftimeを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からstrftime を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「strftime」の関連用語

strftimeのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



strftimeのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2025 by the PHP Documentation Group.

©2025 GRAS Group, Inc.RSS