うまいぼうぶろぐ

linuxとhttpdとperlのメモ

いつまで経ってもlocaltimeの戻り値の順番が覚えられない

何かいい語呂合わせとかないもんですかね。logの抽出のために年月日を取得することは良くするので、さすがにそれらの配列の位置ぐらいは覚えましたけど。

my ($day,$mon,$year) = (localtime(time))[3,4,5];

## 指摘を受けたので追加
$day  = sprintf("%02d",$day);
$mon  = sprintf("%02d",$mon + 1);
$year = sprintf("%04d",$year + 1900);
my $date = "$year-$mon-$day";       # 2007-10-17

追記

DateTimeっていう便利なものがあるらしい。コメントで教えてもらいました。感謝です。

use DateTime;

my $epoch = time;
my $dt      = DateTime->now();
my $date  = $dt->ymd;     # 2007-10-17