ホームページを見る人にとって、そのページの更新日は重要な情報になります。
然し、ページを更新する度に最終更新日を忘れずに修正することは結構難しい 問題です。
更新日の種類には
が考えられます。
そのページが修正された日付を更新日にする場合は JavaScript を使用すれば簡単に自動化できます。
サンプル
<script language="JavaScript"><!-- document.writeln( 'last updated on : '+document.lastModified ); // --></script> <noscript>last updated on:04/01/97 23:30:44</noscript>
ちょっと複雑になりますが、更新日のフォーマットを変えることもできます。
// ブラウザ情報の設定 ie =(navigator.appName=='Microsoft Internet Explorer'); nn =(navigator.appName=='Netscape'); mac=(navigator.appVersion.indexOf('Mac')!=-1); ver=parseInt(navigator.appVersion); if(ie && ver==4) ver = parseInt( navigator.appVersion.substring (navigator.appVersion.indexOf('MSIE ')+5) ); // 曜日の配列を作る week = new Week(); function Week(){ var i=0; this[i++]='Sun'; this[i++]='Mon'; this[i++]='Tue'; this[i++]='Wed'; this[i++]='Thu'; this[i++]='Fri'; this[i++]='Sat'; } // 最終更新日の日付を算出する function updateDate(){ var lm = document.lastModified; var lmDate; if(ie && ver<4){ // IE4 より前のブラウザは parse できない var i,j,nm; i=lm.indexOf(' ',0); j=lm.indexOf(' ',i+1); nm ='' +lm.substring(i+1,j); i=lm.indexOf(' ',j); j=lm.indexOf(' ',i+1); nm+='/'+lm.substring(i+1,j); i=lm.indexOf(' ',j); j=lm.indexOf(' ',i+1); nm+='/'+lm.substring(j+1,lm.length) +' '+lm.substring(i+1,j); lmDate = new Date(Date.parse(nm)); } else { var p,pd=Date.parse(document.lastModified); if(!pd && (p=document.lastModified.indexOf(' JST'))!=-1){ // Linux版 NN4 では 'JST' 付きの文字列は parse できない pd=Date.parse(document.lastModified.substring(0,p)); } lmDate = new Date(pd); } // 年号は getFullYear メソッドがあれば、これを使用する var y=lmDate.getFullYear? lmDate.getFullYear():lmDate.getYear(); // Y2K問題の補正をする var oy=y; if(y< 100) y+=1900; if(y<1980) y+= 100; if(oy!=y) lmDate.setYear(y); if(ie && ver<5 && navigator.appVersion.indexOf('MSIE 5')==-1){ // IE4以前のブラウザは地域化の考慮が欠けているので補正する lmDate.setTime( lmDate.getTime()-lmDate.getTimezoneOffset()*60*1000); } else if(mac && !ie && ver==4){ // Mac版 NN4も地域化の考慮が欠けているので補正する // 但し、getTimezoneOffset の戻り値のフォーマットが異なる! var tz=lmDate.getTimezoneOffset(); lmDate.setTime( lmDate.getTime()+(parseInt(tz/100)*60+tz%100)*60*1000); } // 算出した最終更新日を文字列に成形して戻す return (lmDate.getMonth()+1)+'/'+lmDate.getDate() +'('+week[lmDate.getDay()]+'), '+y; } // 最終更新日を出力する document.write('最終更新日:'+updateDate());
出力する形式を変更するには、 この文字の部分を適当に修正します
lastModified の出力を成形するのに、
これ程複雑になるのは各ブラウザがプラットフォームやバージョン毎に
lastModified の形式や Date.parse() メソッドの解釈ルールが異なったり、
それらを補正するために Y2K問題 を考慮する必要があるためです。
現在では最終更新日が 2000年より前になることはないので
この文字の部分 はもう少し簡単にすることができます。
( と言っても省略できるわけではないので紹介はしません )
もし、SSI や CGI をサポートしている環境なら、それらを使用して成形する方が遙かに楽でしょう。
( 詳細は JavaScript の範囲外になりますので省略します )
注意事項