mktime
(PHP 3, PHP 4 )
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"を出力します。
例 1mktime()の例 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として有効な範囲は1902から2037の間です)
指定した月の最後の日は次の月の -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()も参照下さい。