[解決済み】Webサイトで現在の年を印刷する最短の方法
質問
フッターに著作権の日付がハードコードされている数百の静的なHTMLページを更新する必要があります。それを、毎年自動的に更新するJavaScriptに置き換えたいのです。
現在使っているのは
<script type="text/javascript">var year = new Date();document.write(year.getFullYear());</script>
これくらい短い方がいいのかな?
解決方法は?
数年後、別のことをしているときに思い出した。
Date()
(なし
new
) は文字列を返し、その方法は
一
は、私のオリジナルである下記が来たときよりも1文字短くなりました。
<script>document.write(/\d{4}/.exec(Date())[0])</script>
から4桁の文字列の最初の列が表示されます。
Date()
は
を年号として指定します。
. (以下の私の最初の回答が投稿されたときには、そのような動作は指定されていませんでした - 一般的ではありましたが -。).
もちろん、この解決策はあと7979年(この記事を書いている2021年時点)しか有効ではありません。10000年時点では、"10000"の代わりに"1000"と表示されるからです。
JavaScriptでの解決策を求められたので、最短のものを紹介します。
<script>document.write(new Date().getFullYear())</script>
これは私が遭遇したすべてのブラウザーで動作します。
そこに至る経緯
-
を呼び出せばいいのです。
getFullYear
を直接、新しく作成されたDate
であれば、変数は必要ありません。new Date().getFullYear()
は少し奇妙に見えるかもしれませんが、信頼できるものです。new Date()
の部分が最初に行われ、次に.getFullYear()
. -
をドロップすることができます。
type
これは、JavaScript がデフォルトであるためです。 HTML5仕様 この場合、ブラウザがすでに行っていることを書き上げている可能性があります。 - JavaScript には "automatic semicolon insertion, " があるので、1 文字余分に保存するために最後のセミコロンを削除することができます。 軽蔑 しかし、このような特殊なケースで使用する場合は、十分安全であると言えます。
注意すべきは、JavaScriptが有効なブラウザでしか動作しないことです。理想を言えば、これはオフラインのバッチジョブとして処理するのがよいでしょう (
sed
スクリプトを *nix 上で実行するなど) を年に1回実行する必要がありますが、JavaScript のソリューションを求めるのであれば、それは限りなく短いものであると思います。(今、私は運命を誘惑してしまった)。
しかし
が可能なサーバーを使用していない限り、そのようなことはありません。
のみ
静的ファイルを提供するのであれば、テンプレートエンジンを使ってサーバー上でこれを行い、キャッシュヘッダを使って、日付が変わるまで結果のページをキャッシュできるようにしたほうがよいかもしれません。そうすれば、クライアント側でJavaScriptを使う必要はありません。非
defer
/
async
script
タグがコンテンツに含まれていると、ページの解析と表示が一時的に遅くなります (まさにこの理由からです。スクリプトのコードが
document.write
を出力する)。
関連
-
[解決済み] JavaScriptで現在の年を取得する
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] JavaScriptで現在の日付を取得するには?
-
[解決済み] JavaScriptでカンマを桁区切りにして数値を表示する方法
-
[解決済み] 画面サイズ、現在のウェブページ、ブラウザウィンドウのサイズを取得する
-
[解決済み] jQueryで現在のURLを取得する?
-
[解決済み] PHPを使って現在の年を取得するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】このエラーの原因は何ですか - "Fatal error: ローカルgruntを見つけることができません"
-
[解決済み】document.getElementByIDは関数ではありません。
-
[解決済み】TypeError: 'undefined'はオブジェクトではありません。
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み] jQueryで、ユーザーがそのフィールドを編集している間、テキストフィールドの最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】TypeError: res.status は関数ではありません。
-
[解決済み] JavaScriptで現在の年を取得する
-
[解決済み] なぜdocument.writeは「バッドプラクティス」と言われるのですか?