師匠の散歩

きままにPerlでも

最終更新日

ファイルの更新日を表示する/ dateLastSaved.cgi

これまで何気なく使っていた更新日表示ですが、内容を見直し個別に書き出すことにしました。詳細はWEBでも多数説明されていますが、いくつか注意点を挙げておきます。

  1. 生データはエポック数であるため一般化するには年月日に直す必要がある
  2. このエポック数はシステム時計のものであり、システム日時は現在時刻と合致していないことが多い
  3. サーバーでの更新日なので、通常はFTP転送日時となる
自分自身(dateLastSaved.cgi)の内容
0devファイルシステムのデバイス番号2304
1inoiノード番号45132973083
2modeファイルモード33217
3nlinkこのファイルへのハードリンク数1
4uidファイルの所有者のユーザID(20084
5gidファイルの所有者のグループID(1000
6rdevデバイス識別子0
7sizeファイルのサイズ(2810
8atime最終アクセスのエポック数/日時16324820042021年9月24日 20:13:24
9mtime最終更新日のエポック数/日時16003903202020年9月18日 9:52:0
10ctimeiノード変更のエポック数/日時16311339732021年9月9日 5:46:13
11blksize適切だと考えられるブロックサイズ4096
12blocks実際に割り当てられたブロック数8
#------------------------
# stat関数
#  引数はファイル名
#  配列(1行13列)を戻す
#------------------------
my @statData = stat $0; # 自分自身の stat配列を取り込む。
  foreach(@statData){
    print;
  }
# 更新日のみ
  print ((stat $0)[9]);

# 更新日のエポック数を年月日に変換
# 師匠のCGIファイルで表示される「更新日」にはこのCGIが使われている
  ($sec,$min,$hour,$day,$month,$year)=(getLocalTime((stat $0)[9])[0..5];
  $year+=1900;
  $month++;
  print "$year年$month月$day日 $hour:$min:$sec";

dateLastSaved.cgi // Topに戻る // indexに戻る
Copyright(C) 2009-2021 Grandmaster Last up : 2020/09/18