《 12:00 PM 公開/更新》
JavaScriptを使ってウェブページの最終更新日時を得るには、document.lastModifiedプロパティを使います。日付の表記形態を細かく指定したい場合は、lastModifiedで得られる文字列から一旦Dateオブジェクトを作って、getFullYearなどのメソッドを使って日付や時刻を個別に得ます。
JavaScriptには、そのページが最後に更新された日時「最終更新日時」を得る方法が用意されています。例えば、以下のように記述します。
document.lastModified;
上記のようにdocumentオブジェクトのlastModifiedプロパティを参照するだけで、とても簡単です。
画面に表示したいのであれば、以下のようにHTML&JavaScriptソースを記述すると良いでしょう。
document.write( "最終更新:" + document.lastModified );
上記のソースを実際に表示させると、以下のように見えます。
……たぶん、現在時刻が表示されていますね。(^_^;)
このページはPHPで動的に生成されていますから、そもそも最終更新日時は常に現在日時になってしまいます。
まあ、動的に生成しているページなのであれば、その動的に生成しているスクリプト側で更新日時を取得すれば良いのでJavaScriptを使う必要性はないでしょう。
静的に作成されたHTMLファイルの更新日時を表示したい場合だけで使って下さい。
では、静的に生成されたHTMLファイルの更新日時であれば問題なく取得できるのかというとそうとも言えないのですが。その理由は以下の通りです。
このdocument.lastModifiedプロパティ
は、HTTPレスポンスヘッダに含まれる「Last-Modified:」項目がそのまま返される仕様のようです。HTTPレスポンスヘッダにこの項目がない場合は、単純に現在時刻が返ってきてしまいます。
……ううーん、なかなか使い勝手がよろしくないですね。^^; せめて、HTTPレスポンスヘッダに「Last-Modified:」項目がない場合は空文字が返される、とかだったらif文で判別して活用しようがあるのですが。
静的に生成されたHTMLファイルの更新日時なら、SSIで取得してしまうのが確実です。SSIを有効にしないといけませんから、JavaScriptほど手軽ではありませんけども。
SSIの解説は本題ではないので詳しい解説は省きますが、SSIが有効になっているHTML内で以下のように記述すれば、そのページの更新日時を表示(挿入)できます。この場合、引数次第では自ページ以外の更新日時も得られます。
<!--#config timefmt="%Y年%m月%d日 %H時%M分%S秒" -->
<!--#flastmod virtual="target.shtml" -->
上記では、target.shtmlの更新日時を「2017年06月07日 13時18分05秒」のような書式で表示できます。
#config
の行は1度記述すればそれ以降のすべてで有効です。virtual="ファイルパス"
では更新日時を得たいファイルを相対パスか、「/」で始まる絶対パスで指定します。「http://」などで始まるURLは書けません。
さて、lastModifiedプロパティを参照することでJavaScriptで正しく更新日時が得られた場合、使われる日付の表記形態はブラウザや環境によって異なる可能性があります。
もっと細かく表示形態や表示内容を指定したい場合は、以下のように記述することもできます。
JavaScriptソース
var modified = new Date(document.lastModified); var year = modified.getFullYear(); var month= modified.getMonth() + 1; var date = modified.getDate(); document.write( "最終更新:" + year + "年" + month + "月" + date + "日" );
上記では、lastModifiedプロパティで得られる「最終更新日時」を元にしてDateオブジェクトを作成しています。
そして、getFullYearメソッド・getMonthメソッド・getDateメソッドを利用して、年月日の値を個別に取得しています。
こうすると、最後に自由自在に組み合わせて、好きな形態で更新日時を表示できます。
上記のソースを実際に表示させると、以下のように見えます。
まあ、このページでは現在時刻しか表示されないわけですけどもね。(^_^;;;
なお、時刻も含めた日付表記に関しては、別途「今日の日付・時刻を表示する方法」で詳しく解説していますので、そちらをご参照下さい。
()
▼このページに関連しそうな記事が約8本くらい自動表示されています。(たぶん)