International PHP Conference Berlin 2025

gmmktime

(PHP 4, PHP 5, PHP 7, PHP 8)

gmmktimeGMT 日付から Unix タイムスタンプを取得する

説明

gmmktime(
    int $hour,
    ?int $minute = null,
    ?int $second = null,
    ?int $month = null,
    ?int $day = null,
    ?int $year = null
): int|false

指定されるパラメータが GMT 日付を表すこと以外は mktime() と同じです。 gmmktime() は内部で mktime() を使用しているので、ローカル時刻として有効な値のみが使用可能です。

mktime() と同様に、 オプションの引数は右から順に省略することができます。 省略された引数は、GMT の日付と時刻に従って、現在の値にセットされます。

引数なしで gmmktime() を呼び出すことはサポートされていません。 引数なしで呼び出すと、ArgumentCountError がスローされます。 現在のタイムスタンプを取得する目的には、time() が使えます。

パラメータ

hour

monthdayyear で決まる日付の 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

戻り値

成功時に、Unix タイムスタンプを int で返します。 タイムスタンプの値が PHP の整数型に合わない場合は、false を返します。

変更履歴

バージョン 説明
8.0.0 hour はオプションではなくなりました。 Unixタイムスタンプ が必要な場合、time() 関数を使います。
8.0.0 minute, second, month, day, year は、nullable になりました。

例1 gmmktime() の基本的な例

<?php
// 出力: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", gmmktime(0, 0, 0, 7, 1, 2000));
?>

参考

  • DateTimeImmutable
  • mktime() - 日付を Unix のタイムスタンプとして取得する
  • date() - Unixタイムスタンプを書式化する
  • time() - 現在の Unix タイムスタンプを返す

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top