日付・時刻関数
| 解説 | GMTで指定した日時のUNIXタイムスタンプを取得する |
|---|---|
| 書式 | int gmmktime( [ int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst ]]]]]]] ) |
int gmmktime( [ int 時 [, int 分 [, int 秒 [, int 月 [, int 日 [, int 年 [, int サマータイムフラグ ]]]]]]] ) |
|
| 引数 |
hour
時
|
minute
分
|
|
second
秒
|
|
month
月
|
|
day
日
|
|
year
年:2桁または4桁で指定
|
|
is_dst
サマータイムなら1 違うなら0 不明なら-1
|
|
| 返値 | 指定した日時のタイムゾーンをGMTに合わせたUNIXタイムスタンプ |
gmmktime()は、引数で指定したGMT日時のタイムスタンプを取得します。mktime()関数との違いは引数にGMTを使用する事で、GMT時刻からタイムゾーンのタイムスタンプを得る事ができます。
hour
時
minute
分
second
秒
month
月
day
日
year
年
is_dst
サマータイムフラグ
gmmktime()では、サマータイム以外の引数を省略するのは注意が必要です。引数を省略した場合は現在時刻の値が適用されるのですが、適用される現在時刻はGMTの値ではなくサーバ内部のタイムゾーンに従った値だからです。つまり、下手に省略するとGMTの値とタイムゾーンの値がごちゃごちゃになりますので期待したタイムスタンプ値を得られない事も考えられます。
mktime()関数をご覧下さい。
参考関数
mktime()---- 指定した日時のUNIXタイムスタンプを取得する
サンプルスクリプト
簡単な利用例
<?php
// 現在時刻の各値をGMTとして取得
$hour = gmdate("H");
$minute = gmdate("i");
$second = gmdate("s");
$month = gmdate("n");
$day = gmdate("j");
$year = gmdate("Y");
// GMTからタイムスタンプを生成
$timestamp = gmmktime($hour, $minute, $second, $month, $day, $year);
echo "GMT時間:".gmdate("Y/m/d H:i:s", $timestamp)."<br />\n";
echo "日本時間:".date("Y/m/d H:i:s");
?>
出力結果
GMT時間:2008/12/01 20:14:50
日本時間:2008/12/02 05:14:50
日本時間:2008/12/02 05:14:50


