mktime
解説 | 指定した日時のUNIXタイムスタンプを取得する |
---|---|
書式 | int mktime( [ int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst ]]]]]]] ) |
int mktime( [ int 時 [, int 分 [, int 秒 [, int 月 [, int 日 [, int 年 [, int サマータイムフラグ ]]]]]]] ) |
|
引数 |
hour
時
|
minute
分
|
|
second
秒
|
|
month
月
|
|
day
日
|
|
year
年:2桁または4桁で指定
|
|
is_dst
サマータイムなら1 違うなら0 不明なら-1
|
|
返値 | 指定した日時に基づいたUNIXタイムスタンプ |
mktime()は引数で指定した日時のタイムスタンプを取得します。
タイムスタンプ値
hour
時時を指定します。
minute
分分を指定します。
second
秒秒を指定します。
month
月月を指定します。
day
日日を指定します。
year
年年を指定します。
is_dst
サマータイムフラグサマータイムフラグの指定です。サマータイムなら1そうでなければ0不明の時は-1が指定されます。
※サマータイムフラグはPHP5.1.0で廃止されました。
※サマータイムフラグはPHP5.1.0で廃止されました。
引数は右から順に省略する事ができます。省略した場合はローカルの現在の日付と時刻から値がセットされます。
※is_dst(サマータイムフラグ)はPHP3.0.10から追加されました。
※負の値のタイムスタンプはWindowsでサポートされていないため、Windows環境での年の有効範囲は1970年から2038年の間です。
※year(年)、month(月)、day(日)をゼロとした日付は不正と判定されます。
mktime()は日付の有効性を確認しています。範囲外の値があった場合は自動的に計算して修正します。
月の最後の日は次の月の「0」番目の日として返すことができます。例えば、3月31日は日の引数が「0」月の引数が「4」としても表す事ができます。
mktime()は指定した日付のUNIXタイムスタンプを取得するのに対して、time()は現在のUNIXタイムスタンプを取得します。
参考関数
- date() ---- 日付・時刻を書式化する
- time() ---- 現在のUnixタイムスタンプを取得する
- gmmktime() ---- GMTで指定した日時のUNIXタイムスタンプを取得する
サンプルスクリプト
簡単な利用例
- echo mktime();
出力結果
1611231162
引数をすべて省略しているので現在時刻のタイムスタンプが返ってくる。分かりやすい形式にするにはdate()関数を使う。
2010年の元旦の曜日
- echo date( "l", mktime(0,0,0,1,1,2010) );
出力結果
Friday
date()関数の引数 l(小文字のエル)は曜日を取得します。
mktime()関数による日付の有効性の確認
- // 8月32日と指定してみると・・・・
- $date = mktime(0,0,0,8,32);
- echo date( "n月j日", $date );
出力結果
9月1日
mktime()は日付の計算をしてくれるので、8月32日などと指定した場合でも有効な日付を返してくれます。
月の最後の日は次の月の0日目
- // 4月の0日と指定してみる
- echo date( "n月j日", mktime(0,0,0,4,0) );
出力結果
3月31日