最終更新日の表示
そふぃのPHP入門 >> サンプルスクリプト >> 日付・時刻関連 >> 最終更新日の表示

最終更新日の表示

ページの最終更新日を取得するには

  1. getlastmod()
  2. filemtime( ファイル名 )

最終更新日の表示

ページの最終更新日を表示したい場合、PHPには最終更新日を取得する便利な関数が用意されていますのでそちらを使います。現在のファイルの更新日なのか違うファイルの更新日なのかによって、やり方がちょっとだけ違いますので紹介します。

日付の処理をするのでdate()関数の動作が分からないと書式化できません。date()関数は人間がぱっと見ただけではよく分からないタイムスタンプという形式を分かりやすい形式に直してくれる関数です。

参考関数

  • date() ---- 日付・時刻を書式化する

書式

  • string date( string format [, int timestamp ] )

第1引数に書式(どんな形式にするか)、第2引数に書式化したいタイムスタンプを指定して使います。早速更新日のスクリプトに入りたいのでdate()関数についてはこのくらいにしますが、date()については現在時刻の表示で詳しく解説していますので参考にしてください。

現在のファイルの更新日(getlastmod)

現在のファイルの更新日を得るにはgetlastmod()関数またはfilemtime()関数を使用しますが、filemtime()関数に関しては後ほどまとめて解説していきます。

getlastmod()関数はPHPに標準で用意されている関数なので誰でも使う事ができます。引数は指定する必要がないので、この関数を使うだけで現在のファイルの更新時刻を勝手に取得してUnixタイムスタンプで返してくれます。

参考関数

書式

  • int getlastmod( void )

返される値がタイムスタンプなので、date()関数で書式化して表示します。

PHPコードはとても簡単で1行で済んでしまいます。

  1. <?php
  2. echo "このページの最終更新日:" . date( "Y/m/d H:i", getlastmod() );
  3. ?>

出力結果

このページの最終更新日:2012/05/31 14:07

これはdate()関数の第2引数にgetlastmod()関数で取得したファイルの最終更新日をセットして書式化したサンプルですが、分からない人のために少し長めのサンプルを載せておきます。

  1. <?php
  2. $mod = getlastmod(); // $modに最終更新日のタイムスタンプを代入
  3.  
  4. echo "最終更新日のタイムスタンプ--" . $mod . "<br />\n";
  5.  
  6. // このままではさっぱり分からないのでdate関数で書式化すると・・・
  7. echo "最終更新日--" . date("Y/m/d H:s",$mod);
  8. ?>

出力結果

最終更新日のタイムスタンプ--1338440820
最終更新日--2012/05/31 14:00

曜日を日本語表示させたい場合なんかは曜日の日本語表示あたりをご覧下さい。

違うファイルの更新日(filemtime)

getlastmod()関数では現在のファイルの更新日しか取得できませんが、違うファイルの更新日を取得する関数もPHPにちゃんと用意されています。違うファイルの更新日を得るにはfilemtime()関数を使います。filemtime()関数は指定したファイルの更新日を取得する関数です。

参考関数

  • filemtime() ---- ファイルの更新時刻を取得する

書式

  • int filemtime( string filename )

引数に指定したファイル名の最終更新日をUnixタイムスタンプで返してくれます。こちらもdate()関数で書式化して表示します

こちらもPHPコードは1行で済みます。

  1. <?php
  2. echo "Top更新日:".date( "y/m/d(D) h:iA", filemtime("../../index.php") );
  3. ?>

出力結果

Top更新日:15/07/15(Wed) 07:37PM

このサイトのTOPページの更新日を表示しています。