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);