mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

サイトの最終更新日を自動で!

[ webサイト, サーバ構築 ] [ Apache ]

こんばんは。

   今日は、ホームページの「 最終更新日 」についてです。

いつもホームページを更新した際に、よく更新日を修正するのを忘れるので、自動でファイルのタイムスタンプから更新日時を取得させようと考えました。

いろいろ調べてみると、 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サーバにアップしたときにタイムスタンプがアップした日時に変わるので、 いちいち最終更新日を意識しなくてもよくなりました。

   では、また。

  

Comments