mktime
日付を Unix のタイムスタンプとして取得する
&reftitle.description;
intfalsemktime
inthour
intnullminute&null;
intnullsecond&null;
intnullmonth&null;
intnullday&null;
intnullyear&null;
与えられた引数に従って UNIX のタイムスタンプを返します。
このタイムスタンプは、Unix epoch(1970年1月1日00:00:00 GMT)から
指定された時刻までの通算秒を表す長整数です。
省略されたり、&null; が指定されたオプションの引数は、
ローカルの日付と時刻に従って、現在の値にセットされます。
引数の順番が変なので注意して下さい:
month, day,
year の順になっており、
理にかなった year, month,
day の順になっていません。
引数なしで mktime を呼び出すことはサポートされていません。
引数なしで呼び出すと、ArgumentCountError がスローされます。
現在のタイムスタンプを取得する目的には、time が使えます。
&reftitle.parameters;
hour
month、day と year
で決まる日付の 0 時から数えた「時」。負の値は、その日の 0 時から前にさかのぼった時間を表します。
23 より大きい値は、その翌日以降の該当する時間を表します。
minute
hour 時 0 分から数えた「分」。
負の値は、その前の時刻を表します。
59 より大きい値は、その次の時間以降の該当する時間を表します。
second
minute 分 0 秒から数えた「秒」。
負の値は、その前の時刻を表します。
59 より大きい値は、その次の分以降の該当する時間を表します。
month
前年末から数えた月数。1 から 12 までの場合は、カレンダーどおりのその年の「月」を表します。
(負の値を含めた) 1 より小さい値は、前年の月を逆順でたどります。
つまり 0 なら 12 月、-1 なら 11 月になるということです。
12 より大きい値は、その翌年以降の該当する月を表します。
day
前月末から数えた日数。1 から 28、29、30、31 (月によって異なる) までの場合は、その月の「日」を表します。
(負の値を含めた) 1 より小さい値は、前月の日を逆順でたどります。
つまり 0 なら前月の末日、-1 ならそのさらに前日になるということです。
その月の日数より大きい値は、翌月以降の該当する日を表します。
year
年。2 桁または 4 桁の値を指定可能で、
0-69 の間の値は 2000-2069 に、70-100 は 1970-2000 にマップされます。
今日最も一般的なシステム、すなわち time_t が 32 ビットの符号付き整数である
システムでは year として有効な範囲は 1901 から
2038 の間です。
&reftitle.returnvalues;
mktime は与えられた引数の Unix
タイムスタンプを返します。
タイムスタンプの値が PHP の整数型に合わない場合は、&false; を返します。
&reftitle.changelog;
&Version;
&Description;
8.0.0
hour は、オプションではなくなりました。
Unixタイムスタンプ が必要な場合、time
を使います。
8.0.0
minute, second, month,
day, year は、nullable になりました。
&reftitle.examples;
mktime の基本的な例
]]>
mktime の例
mktime は入力日付の有効性を確認しており、
範囲外の入力を自動的に修正して計算してくれるので便利です。
例えば、以下の各行はいずれも文字列 "Jan-01-1998"を出力します。
]]>
月の末日
指定した月の最後の日は次の月の -1 番目の日ではなく、"0" 番目の日
として表すことが可能です。以下の例はともに文字列"The last day in
Feb 2000 is: 29" を出力します。
]]>
&reftitle.seealso;
DateTimeImmutable
checkdate
gmmktime
date
time