mktime
そふぃのPHP入門 >> PHP関数リファレンス >> 日付・時刻関数 >> mktime

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タイムスタンプ

PHPマニュアル:mktime mktime()

mktime()関数:概略解説

mktime()は引数で指定した日時のタイムスタンプを取得します。

mktime()関数:返り値解説

タイムスタンプ値

mktime()関数:引数解説

hour
時を指定します。
minute
分を指定します。
second
秒を指定します。
month
月を指定します。
day
日を指定します。
year
年を指定します。
is_dstサマータイムフラグ
サマータイムフラグの指定です。サマータイムなら1そうでなければ0不明の時は-1が指定されます。
サマータイムフラグはPHP5.1.0で廃止されました。

mktime()関数:補足解説

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

mktime()関数:注意

is_dst(サマータイムフラグ)はPHP3.0.10から追加されました。

負の値のタイムスタンプはWindowsでサポートされていないため、Windows環境での年の有効範囲は1970年から2038年の間です。

year(年)、month(月)、day(日)をゼロとした日付は不正と判定されます。

mktime()関数:その他

mktime()は日付の有効性を確認しています。範囲外の値があった場合は自動的に計算して修正します。

サンプル mktime()関数による日付の有効性の確認

月の最後の日は次の月の「0」番目の日として返すことができます。例えば、3月31日は日の引数が「0」月の引数が「4」としても表す事ができます。

サンプル 月の最後の日は次の月の0日目

mktime()は指定した日付のUNIXタイムスタンプを取得するのに対して、time()は現在のUNIXタイムスタンプを取得します。

参考関数

  • date() ---- 日付・時刻を書式化する
  • time() ---- 現在のUnixタイムスタンプを取得する
  • gmmktime() ---- GMTで指定した日時のUNIXタイムスタンプを取得する

サンプルスクリプト

簡単な利用例

  1. <?php
  2. echo  mktime();
  3. ?>

出力結果

1488144028

引数をすべて省略しているので現在時刻のタイムスタンプが返ってくる。分かりやすい形式にするにはdate()関数を使う。

2010年の元旦の曜日

  1. <?php
  2. echo date( "l", mktime(0,0,0,1,1,2010) );
  3. ?>

出力結果

Friday

date()関数の引数 l(小文字のエル)は曜日を取得します。

mktime()関数による日付の有効性の確認

  1. <?php
  2. // 8月32日と指定してみると・・・・
  3. $date = mktime(0,0,0,8,32);
  4. echo date( "n月j日", $date );
  5. ?>

出力結果

9月1日

mktime()は日付の計算をしてくれるので、8月32日などと指定した場合でも有効な日付を返してくれます。

月の最後の日は次の月の0日目

  1. <?php
  2. // 4月の0日と指定してみる
  3. echo date( "n月j日", mktime(0,0,0,4,0) );
  4. ?>

出力結果

3月31日