經驗交流

顯示檔案的最後更新時間

問題說明
 當我們需要在網頁上顯示其「最後更新時間」時,可以透過 JavaScript 去取得 document 的 lastModified 屬性即可。如:
<script language="JavaScript">
  document.write("Last modified: ");
  document.write(document.lastModified);
</script>
 結果:
   
 您注意到了嗎?這個時間正是現在。再重新整理本頁面看看,您將會發現:該時間永遠是當時的時刻。這顯然不是我們所要的。
 為什麼會是如此呢?因為您所看到的網頁內容是由 PHP 即時編譯產生的,當您再重新整理本頁面時,PHP 又會即時編譯出本網頁的內容給您,所以 JavaScript 會認為這個頁面剛剛被修改過,是最「新鮮」的內容。

我的做法
 為了呈現網頁「真實」的最後編修時間,我們可以改用下列的做法:
1. filemtime( )
 在 Filesystem functions 之中,有個 filemtime 函數,它可以用來取得指定檔案的最後更新時間。在取得時間資料之後,我們再利用 date( ) 來將該時間予以格式化。
<?
echo "Last modified: " . date("m/d/Y h:i:s", filemtime(__FILE__));
?>
 結果:
 Last modified: 06/20/2007 03:36:20
 程式中的 __FILE__ 是個常數,可以用來顯示本檔案的路徑。另外也能夠用 $_SERVER["DOCUMENT_ROOT"] 與 $PHP_SELF 這兩個環境變數來達到相同的效果。
<?
echo "Last modified: " . date("m/d/Y h:i:s", filemtime($_SERVER["DOCUMENT_ROOT"] . $PHP_SELF));
?>
 結果:
 Last modified: 06/20/2007 03:36:20

2. getlastmod( )
 在 PHP options & information functions 之中,另外有個 getlastmod 函數,它也可以用來取得指定檔案的最後更新時間。
<?
echo "Last modified: " . date("m/d/Y h:i:s", getlastmod());
?>
 結果:
 Last modified: 06/20/2007 03:36:20
經驗交流