コピーライトの年表示を自動更新する
公開日:2014年3月6日
最終更新日:2019年3月25日
ホームページの下のほうにある著作権表記ですが、コピーライトの年を示す表示が古いままになっているサイトがかなりあります。
年が新しくなったら自動更新するように設定しておく方法をいくつか紹介します。
【コンテンツ】
JavaScriptで現在の日付を取得し表示する
JavaScriptの日付オブジェクトから、getFullYearメソッドを使って現在の年を取得する方法です。
現在年を表示する関数を定義する
外部ファイルに以下のように記述して関数を定義します。
外部ファイルを使用しない場合は、head要素内やbody要素内に記述しても構いません。
1 2 3 4 5 6 |
// 現在の年表示 function showCurrentYear() { var today = new Date(); var y = today.getFullYear(); document.write(y); } |
【注意】
同じようなメソッドとしてのgetYearは、1900年を基点としており、ブラウザによっては4桁の数値を返してこないこともあります。その場合は条件分岐のコードが必要となります。
現在getYearは非推奨であり、JavaScript1.3から実装されたgetFullYearを使うことが推奨されています。
ページ内の表示したい場所で関数を呼び出す
定義したshowCurrentYear()を以下のように呼び出し、現在の年を表示させます。
1 2 3 4 5 6 7 8 |
<p>Copyright © <script type="text/javascript"> showCurrentYear(); </script> <noscript> 2014 </noscript> My Site. All Rights Reserved.</p> |
上記コードでは、JavaScript無効もしくは未対応ブラウザの場合、
<noscript>~</noscript>で表示する文字列を指定しています。
現在年の表示関数を定義しない記述の仕方
表示したい場所に以下のコードを記述するだけで、同様に実現できます。
1 2 3 4 5 6 7 8 9 10 11 12 |
<p> <script type="text/javascript"> <!-- var today = new Date(); var y = today.getFullYear(); document.write("Copyright © " + y + " My Site. All Rights Reserved."); //--> </script> <noscript> Copyright (C) 2014 My Site. All Rights Reserved. </noscript> </p> |
上記のスクリプトコード内で、「<!--」と「//-->」で囲んでいるのは、JavaScript未対応ブラウザのためです。
JavaScript未対応ブラウザで、スクリプトコードがそのまま表示されるのを防ぐため、その間の記述をコメントとして扱うようにしています。
一方、JavaScript対応ブラウザでは、「<!--」と「//」で始まる行はどちらもコメント行として扱われるため、コードは正常に動作します。
なお、JavaScript未対応や無効などを気にしないのであれば、表示したい場所に以下のように簡潔に記述すれば済みます。
私はコピーライト表記も含めて、こういうふうに簡潔な記述にするサイトが多いです。
1 2 3 4 5 6 7 |
<p> <script type="text/javascript"> var today = new Date(); var y = today.getFullYear(); document.write("© " + y + " My Site"); </script> </p> |
PHPのdate関数を使って現在年を表示する
WordPressサイトなどでは、PHPのdate関数を使えば以下のように簡潔に記述することが可能です。
この方法だと、JavaScriptの対応/未対応や有効/無効にかかわらず正しく表示されます。
また、HTMLソースを表示させても、自動更新していることを知られることはありません。
1 |
<p>© <?php echo date("Y"); ?> My Site</p> |
CGIを使って現在年を表示する
最後はCGIを使った方法を紹介します。
この方法でもPHPと同様、ブラウザの対応状況にかかわらず正しく現在年を表示することができます。
ただし、利用しているサーバーのCGIサポート状況をよく確認してから試してみてください。
【記事執筆時の確認環境】
レンタルサーバー:XSERVER
CGIファイルを作成する
テキストエディタで、以下のコードを記述してください。
1 2 3 4 |
#! /usr/bin/perl my $year = (localtime(time))[5] + 1900; print "Content-type: text/html\n\n"; print $year; |
拡張子は'.cgi'にして、任意のファイル名で保存します。
ここでは「get_current_year.cgi」としておきます。
なお、1行目の「/usr/bin/perl」はperlのパスですが、サーバーによって違いますので確認してください。
XSERVERではこの記述でOKです。
ページ内の表示したい場所でCGIを呼び出す
以下のように、「cgi=""」の部分に作成したCGIファイル名を指定します。
表示するHTMLファイルと違うディレクトリにおく場合は、そのパスを指定してください。
1 |
<p>© <!--#exec cgi="get_current_year.cgi"--> My Site</p> |
HTMLファイルを修正したら、拡張子を'.shtml'に変えて保存します。
サーバーにファイルをアップロードする
作成した、CGIファイル「get_current_year.cgi」と、修正し拡張子を変えたSHTMLファイルをサーバーにアップロードします。
注意点として、例えば「index.html」を「index.shtml」に変えた場合は、index.htmlが残っているとそちらが優先されますので削除しておきます。
アップロードしたら、「get_current_year.cgi」のパーミッションをCGIが実行できるように変更します。
XSERVERの場合は、ファイルが格納されているディレクトリも含めて、'755'あるいは'705'であることが必要です。
スポンサーリンク