gmtime
gmtime EXPR
time関数の値をグリニッジ標準時で現す
例: gmtime(time)

EXPRを省略するとlocaltime(time)が実行される。

time関数では1970年1月1日からの経過秒数を返すが、gmtimeはtime関数が返す値をグリニッジ標準時での年月日時分秒などの要素に変換をする。


print time;1018405401 と返したとき

print gmtime(time);212321031023990 となる。
これは 21=秒, 23=分, 2=時, 10=日, 3=4月, 102=2002年, 3=水曜日, 99=99日, 0=非サマータイムの意味。localtimeの日本時間と9時間の差となる。


変数に代入することによって以下のような結果を得られる。

$imanojikan = gmtime(time);
print $imanojikan;
$imanojikan は下のようになる。
Wed Apr 10 02:23:21 2002


($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime(time);
gmtime は上のように9つの要素に分解することができる。
gmtime(time)が 212321031023990 のとき
$sec2121秒0〜59
$min2323分0〜59
$hour223時0〜23
$mday101日1〜31
$mon44月0〜11(1月は0)
$year102102年1900を引いた年数
$wday3水曜日0〜6(日曜日は0)
$yday9999日1月1日からの経過年数
$isdst00サマータイム期間中は1


2002年04月10日 のように表示するには下のようにsprint関数を使う。

($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime(time);
$yyyymmddJ = sprintf("%04d年%02d月%02d日", $year + 1900, $mon +1, $mday);
print $yyyymmddJ;
年月日や曜日の表示は「年月日や曜日・時刻の取得」を参照。


Perlライブラリモジュールの Time::Local には、gmtime の逆変換をするサブルーチン timegm() がある。


(参考)time
(参考)localtime

Back

[PR]tDl:]E面炳士澎IN5lp