ウェブサイトで現在の年を印刷する最も簡単な方法 質問する

ウェブサイトで現在の年を印刷する最も簡単な方法 質問する

フッターに著作権の日付がハードコードされている数百の静的 HTML ページを更新する必要があります。毎年自動的に更新される JavaScript に置き換えたいです。

現在使用しているもの:

<script type="text/javascript">var year = new Date();document.write(year.getFullYear());</script>

これは最も短いですか?

ベストアンサー1

数年後、何か他のことをしているときに、Date()( なし) は文字列を返すこと、そして以下の元のコードよりも1new文字短い方法を思いついたことを思い出しました。

<script>document.write(/\d{4}/.exec(Date())[0])</script>

文字列の最初の4桁の数字Date()年として指定(これは、以下の私の最初の回答が投稿された時点では、指定された動作ではありませんでしたが、一般的でした。)

もちろん、この解決策はあと 7,979 年間しか有効ではありません (2021 年のこの記事の執筆時点では)。10000 年時点では、「10000」ではなく「1000」と表示されるからです。


JavaScript によるソリューションを求められているので、私が理解できる最短のソリューションは次のとおりです。

<script>document.write(new Date().getFullYear())</script>

それは私が遭遇したすべてのブラウザで動作します。

そこにたどり着いた経緯:

  • getFullYear新しく作成された を直接呼び出すだけでよくDate、変数は必要ありません。 はnew Date().getFullYear()少し奇妙に見えるかもしれませんが、信頼性があります。new Date()部分が最初に実行され、次に が実行されます.getFullYear()
  • typeJavaScriptがデフォルトなので、 を省略できます。これは、HTML5仕様この場合、ブラウザがすでに行っていることを記述している可能性があります。
  • JavaScript には「自動セミコロン挿入」機能があり、私は通常この機能を嫌悪し、激しく非難しますが、この特定の使用例では、十分安全なはずです。そのため、末尾のセミコロンを削除して、余​​分な文字を 1 つ節約できます。

これは JavaScript が有効になっているブラウザでのみ機能することに注意してください。理想的には、これは年に 1 回のオフライン バッチ ジョブ (*nix 上のスクリプトなど) として処理する方が適切ですsedが、JavaScript ソリューションが必要な場合は、これが最も短い方法だと思います。(今、私は運命を試してみました。)


ただし、静的ファイルしか提供できないサーバーを使用しているのでなければ、テンプレート エンジンを使用してサーバー上でこれを実行し、キャッシュ ヘッダーを使用して、日付の変更が必要になるまで結果のページをキャッシュできるようにする方がよいでしょう。そうすれば、クライアントで JavaScript を使用する必要はありません。コンテンツでdefer/以外async scriptのタグを使用すると、ページの解析と表示が少し遅れます (まさにこの理由によります。スクリプトのコードがdocument.writeHTML を出力するために使用される可能性があるためです)。

おすすめ記事