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