Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7">

date

(PHP 3, PHP 4 )

date -- ローカルの日付/時刻を書式化する

説明

string date ( string format, int [timestamp])

指定された引数 timestamp を、与えられた フォーマット文字列によりフォーマットし、日付文字列を返します。 タイムスタンプが与えられない場合は、現在のローカル時刻が使われま す。

注意 有効なタイムスタンプの範囲は通常 Fri, 13 Dec 1901 20:45:54 GMTからTue, 19 Jan 2038 03:14:07 GMTまでです。 (これらの日付は、32ビット符号付き整数の最小および最大値に対応し ます。)

日付の文字列表現からタイムスタンプを生成するには、 strtotime()を使用できる可能性があります。加 えて、いくつかのデータベースは、(MySQLのUNIX_TIMESTAMP関数のよ うな)日付フォーマットからタイムスタンプに変換する関数を有してい ます。

フォーマット文字列では、以下の文字が認識されます。

  • a - "am" または "pm"

  • A - "AM" または "PM"

  • d - 日。2桁の数字 (先頭にゼロが付く場合も)。すなわち、"01"から "31"まで

  • D - 曜日。3 文字のテキスト形式。すなわち "Fri"

  • F - 月。テキスト形式。長い形式。すなわち "January"

  • h - 時。数字。12 時間単位。すなわち"01"から"12"

  • H - 時。数字。24 時間単位。すなわち"00"から"23"

  • g - 時。12時間単位。先頭にゼロを付けない。すなわち"1"から"12"。

  • G - 時。24時間単位。先頭にゼロを付けない。すなわち"0"から"23"。

  • i - 分。数字。すなわち"00"から"59"

  • j - 日。数字。先頭にゼロを付けない。すなわち"1"から"31"

  • l ('L'の小文字) - 曜日。テキスト形式。長い形式。すなわち "Friday"

  • L - 閏年であるかどうかを表す論理値。すなわち、"0"または"1"

  • m - 月。すなわち"01"から"12"

  • n - 月。先頭にゼロを付けない。すなわち"1"から"12"

  • M - 月。3 文字のテキスト形式。すなわち "Jan"

  • r - RFC 822 フォーマットされた日付。すなわち "Thu, 21 Dec 2000 16:01:07 +0200" (PHP 4.0.4で追加)

  • s - 秒。すなわち"00"から"59"

  • S - 英語形式の序数を表すサフィックス。2 文字。すなわち "th" や "nd"

  • t - 指定した月の日数。すなわち、"28"から"31"。

  • T - このマシーンのタイムゾーンの設定。例えば、"MDT"

  • U - Unix 時(1970年1月1日)からの秒数

  • w - 曜日。数値。すなわち、"0"(日曜)から"6"(土曜日)まで

  • W - ISO-8601 月曜日に始まる年単位の週番号 (PHP 4.1.0で追加) (Saturday)

  • Y - 年。4 桁の数字。すなわち"1999"。

  • y - 年。2 桁の数字。すなわち"99"。

  • z - 年間の通算日。数字。。すなわち"0"から"365"。

  • Z - タイムゾーンのオフセット秒数。(すなわち、"-43200"から "43200")UTCの西側のタイムゾーン用のオフセットは常に負です。そ して、UTCの東側のオフセットは常に正です。

フォーマット文字列中の認識されない文字は、そのまま表示されます。 gmdate()で使用した場合、"Z"フォーマットは常に"0"を 返します。

例 1date() の例

echo date ("l dS of F Y h:i:s A");
echo "July 1, 2000 is on a " . date ("l", mktime(0,0,0,7,1,2000));

前にバックスラッシュを付けてエスケープすることにより、フォーマッ ト文字列として認識される文字が展開されることを防止することができ ます。バックスラッシュ付きの文字は既に特別なシーケンスであり、バッ クスラッシュもエスケープすることが必要となる可能性があります。

例 2date()の文字をエスケープする

echo date("l \\t\h\e jS"); // 'Saturday the 8th'のように出力

date()mktime() の 両方を用いて未来または過去の日付を知ることができます。

例 3 date()mktime()の例

$tomorrow  = mktime (0,0,0,date("m")  ,date("d")+1,date("Y"));
$lastmonth = mktime (0,0,0,date("m")-1,date("d"),  date("Y"));
$nextyear  = mktime (0,0,0,date("m"),  date("d"),  date("Y")+1);

注意 サマータイムがあるため日付や月の秒数を単純にタイムスタンプに可 減算するよりもより信頼性があります。

date() フォーマットのいくつかの例を示します。 現在の実装で特別な意味がある文字や今後のPHPのバージョンで意味が割 り付けられるであろう文字については、望ましくない結果を避けるため にエスケープする必要があることに注意して下さい。エスケープをする 際には、改行文字 \n のような文字を回避するためにシングルークオー トを使用して下さい。

例 4 date() によるフォーマット

/* 今日は、March 10th, 2001, 5:16:18 pm です。 */
$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, m, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // It is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:17 m is month
$today = date("H:i:s");                         // 17:16:17

他の言語で日付をフォーマットするためには、 setlocale() および strftime() 関数を使用する必要があります。

getlastmod(), gmdate(), mktime(), strftime(), time()も参照下さい。