今日は、ホームページの「 最終更新日 」についてです。
いつもホームページを更新した際に、よく更新日を修正するのを忘れるので、自動でファイルのタイムスタンプから更新日時を取得させようと考えました。
いろいろ調べてみると、 JavaScript で簡単にできそうなんでやってみました。
↓↓ こんな感じで。
1
2
3
4
5
6
7
8
9
10
11
12
13
| <script type="text/javascript"><!--
renew = new Date( document.lastModified );
y = renew.getYear();
m = ( "0" + ( renew.getMonth() + 1 ) ).slice( -2 ); //ゼロ埋めして右から2桁を取得するという意味
d = ( "0" + ( renew.getDate() ) ).slice( -2 );
h = ( "0" + ( renew.getHours() ) ).slice( -2 );
M = ( "0" + ( renew.getMinutes() ) ).slice( -2 );
s = ( "0" + ( renew.getSeconds() ) ).slice( -2 );
if( y < 1900 ) {
y = y + 1900;
}
document.write( y + "/" + m + "/" + d + " " + h + ":" + M + ":" + s );
// --></script>
|
しかし、表示はされるもののファイルの更新日時でなく、現在時刻が表示されてしまいます。
いろいろ調べた結果、Webサーバが Apache だからみたいです。
Apacheの設定をかまって、SSI(Server Side Include) を使えるようにすれば可能のようですが、サーバにも負荷がかかるみたいだしちょっとだけ面倒なんで、
PHP でやってみました。
非常に簡単でした。
↓↓ ソースサンプルです。
1
2
3
4
| <?php
$mod = getlastmod(); //最終更新日のタイムスタンプを代入
echo date("Y/m/d H:i:s",$mod); //最終更新日を整形
?>
|
上記は表示しようとしているファイルのタイムスタンプを取得して表示するものですが、
特定のファイルを指定してタイムスタンプを取得するのなら「 filemtime 」を使って以下のようになります。
↓↓ ソースサンプルです。
1
2
3
| <?php
echo date("Y/m/d H:i:s",filemtime("index.php"))
?>
|
これで、
ファイルをWebサーバにアップしたときにタイムスタンプがアップした日時に変わるので、
いちいち最終更新日を意識しなくてもよくなりました。
では、また。