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

# mktime

(PHP 3, PHP 4 , PHP 5)

mktime -- 日付を UNIX のタイムスタンプとして取得する

## 説明

int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]])

警告: 引数の順番が、通常の UNIX mktime() の引数の順番と 異なっていることに注意して下さい。 このことは、(以下に示すように)パラメータを右から左に 省略出来るようにすることに役立っているわけではありません。 これらの値をスクリプトで混用するというのは、ありがちなエラーです。

与えられた引数に従って UNIX のタイムスタンプを返します。 このタイムスタンプは、Unix epoch(1970年1月1日)から 指定された時刻までの通算秒を表す長整数です。

引数は右から順に省略することができます。省略された引数は、 ローカルの日付と時刻に従って、現在の値にセットされます。

is_dst はサマータイムの時に1にセットされ、 そうでない時に0に、サマータイムであるかどうかが不明である場合に-1 にセットされます。

> 注意: is_dst は　3.0.10　で追加されました。

mktime() は入力日付の有効性を確認しており、 範囲外の入力を自動的に修正して計算してくれるので便利です。 例えば、以下の各行はいずれも文字列 "Jan-01-1998"を出力します。

例 1. mktime()の例

`echo date ("M-d-Y", mktime (0,0,0,12,32,1997)); echo date ("M-d-Y", mktime (0,0,0,13,1,1997)); echo date ("M-d-Y", mktime (0,0,0,1,1,1998)); echo date ("M-d-Y", mktime (0,0,0,1,1,98));`

year は2桁または4桁の値を指定可能で、 0-69の間の値は2000-2069に、70-99は1970-1999にマップされます。 (今日最も一般的なtime_tが32ビットの符号付き整数であるシステムで、 yearとして有効な範囲は1901から2038の間です)

> Windows: 負の値のタイムスタンプはWindowsのどのバージョンにおいてもサポートされていません。 したがって、年の有効範囲は1970年から2038年の間のみです。

指定した月の最後の日は次の月の -1 番目の日ではなく、"0" 番目の日 として表すことが可能です。以下の例はともに文字列"The last day in Feb 2000 is: 29" を出力します。

例 2. 次の月の最後の日

`$lastday = mktime (0,0,0,3,0,2000); echo strftime ("Last day in Feb 2000 is: %d", $lastday); $lastday = mktime (0,0,0,4,-31,2000); echo strftime ("Last day in Feb 2000 is: %d", $lastday);`

year、month、dayをゼロとした日付は、不正と判定されます。 (さもなくば、30.11.1999と見なされますが、意図した結果にはならない でしょう。)

date(), time()も参照下さい。

前のページ | ホーム | 次のページ
microtime | 上に戻る | strftime