質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

6199閲覧

JavaScriptによる和暦取得の原理

akadashi

総合スコア19

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2016/12/03 15:55

###知りたい知識

JavaScriptには、日付を和暦(元号)で表示するための機能があります。
たとえば以下のコードをChromeで実行すると、「平成28年12月4日日曜日」なるアラートが表示されます。
しかし、WebAPIならまだしも、クライアントサイドで動作するJavaScriptは、最新の元号を一体どこから取得しているのでしょうか。言い換えれば、もし将来的に新しい元号が始まったとき、どのような原理でJavaScriptはそのことを知るのでしょうか。

javascript

1var date = new Date(); 2var option = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; 3var str=date.toLocaleDateString("ja-JP-u-ca-japanese", option); 4alert(str);

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

新元号が出来たら、ブラウザのアップデートでしょう。

投稿2016/12/03 16:51

otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akadashi

2016/12/05 01:19

よく分かりました。ありがとうございました。
guest

0

ベストアンサー

JavaScriptの実行エンジン内で、元号は開始年月日と終了年月日がありますから、その表に当てはめて判定しているのでしょう。変更があったら実行エンジンをアップデートするだけのこと。

なんですが…
明治憲法下では、皇位継承が行われた時点をもって元号が改められるため、同じ日が両方の元号にまたがります。
1926年12月25日は昭和元年であると同時に、大正15年でもあるのです。

平成への改元においては、法律と政令により、皇位継承の翌日から平成とされたため、重複はありません。

投稿2016/12/03 23:06

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akadashi

2016/12/05 01:18

なるほど、実行エンジンは対応表を内部で静的に保持していて、変更があればすぐにアップデートする仕組みなんですね。よく分かりました。ありがとうございました。
guest

0

【Date.prototype.toLocaleDateString() - JavaScript | MDN】
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

使用されるロケールや返される文字列の書式は、完全に実装依存です。

投稿2016/12/03 20:46

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2016/12/03 22:45

「どういう言語仕様なのか」の質問じゃなくて、「どうやって実装しているのか」の質問だと思いますよ。
kei344

2016/12/04 05:15

> どのような原理でJavaScriptはそのことを知るのでしょうか。 という問いなので、こういう回答になりました。主語が「ブラウザが」「node.jsが」であれば違った回答をしたかもしれませんが、「JavaScriptが」なので実装依存と回答しました。
akadashi

2016/12/05 01:25

返される書式というよりも、そもそもJsはどういう原理で正しい元号を取得しているのか(特に新元号が始まった瞬間、どうやってその変化に即時対応するのか)という疑問でした。伝わりにくくてすみません。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問