CGI WEB [ CGI配布 CGI解説 ホームページ作成支援 ]
ホーム|CGI配布|CGIランキング|CGIサポート|CGI解説|ワンタッチボード|ワンタッチメール|クイズ|自宅サーバ|サーバガイド|登録太郎|CGI WEBサーチ|CGI WEB窓口


back
localtimeとgmtime





■localtime
引数にtimeを与えるとサーバの現地日時のリストを得る事が出来ます。 timeには1970年1月1日0時0分0秒からの経過秒数が入る事になっています。

$day = (localtime(time))[3];
print $day;

現在の日付が表示されます。 localtimeは、あくまで現地日時のリストを返す関数です。 海外サーバを使用している場合は以下のようにすると日本日時に合わせる事が可能です。

$ENV{'TZ'} = "JST-9";
$day = (localtime(time))[3];
print $day;

■localtime関数が返すリストのインデックスとその内容

[0] ⇒ 秒  (0-59)
[1] ⇒ 分  (0-59)
[2] ⇒ 時  (0-23)
[3] ⇒ 日  (1-31)
[4] ⇒ 月  (0-11) 0⇒1月 / 11⇒12月
[5] ⇒ 年  1900を減算した値 (例)2003年⇒103
[6] ⇒ 曜日 (0-6) 0⇒日曜日 / 6⇒土曜日
[7] ⇒ 夏調整時間 (0or1) 日本は関係なし

$ENV{'TZ'} = "JST-9";
@w = qw(Sun Mon Tue Wed Thu Fri Sat);
($sec, $min, $hour, $day, $mon, $year, $week) = localtime(time);
$jst = sprintf("%04d/%02d/%02d(%s)%02d:%02d:%02d",
    $year+1900, $mon+1, $day, $w[$week], $hour, $min, $sec);
print $jst;

日本日時をlocaltime関数で取得しsprintf関数で整列後表示しています。 例えば「2007/04/21(Sat)10:05:30」と表示されます。

■gmtime
グリニッジ標準時(GMT)のリストを得る事が出来ます。 リストのインデックスとその内容はlocaltime関数と同じです。

@gmt = gmtime(time + 30*24*60*60);

上記のスクリプトで30日後のGMTのリストを@gmtに得る事が出来ます。 gmtime関数は主にクッキーを取り扱う時に使用されます。 クッキーをセットする場合は有効期限をGMTで指定する必要がある為です。 クッキーのセット方法については以降の項目で詳しく説明します。



□更新履歴
 2007.04.23 全体的に内容を見直し
 2006.11.27 日本日時への変換方法を追加




CGI WEB