5部 関数リファレンス

localtime

localtime EXPR



time関数が返す時刻をローカル時間に変換し、9 要素の配列として返します。

localtimeの使い方

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

すべての配列要素は数値です。注意する点は、$monが 0..11 の範囲で、0 が1月を表し、$wdayが 0..6 の範囲、0 が日曜日を表します。また、$yearには西暦から1900を引いた値がセットされています。引数が省略されると、localtime(time)を実行します。

完全な4桁の西暦を得る方法は以下のとおりです。

$year += 1900;

スカラコンテキストでは、ctime(3) の値を返します。

localtimeの返却値

変数 値が取りえる範囲
$sec 0~60
$min 0~59
$hour 0~23
$mday 1~31
$mon 0~11(1月は0)
$year 1~138(1900を引いた年数)
$wday 曜日 0~6(日曜日は0)
$yday 年初からの経過日数 0~365
$isdst 0または1 サマータイム期間中は1、期間外は0

PerlライブラリモジュールTime::Localにはtimelocalサブルーチンが用意されていて、localtimeの逆変換が可能です。

その年の何週目かを求める

$yday = (localtime)[7];
$yweek = int($yday / 7); 

関連記事