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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

3677閲覧

Javascript現在の月の取得の仕組みの原理がわかりません

miramikan

総合スコア26

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1グッド

0クリップ

投稿2017/07/07 12:03

編集2017/07/07 12:04

Javascriptでリアルタイムで日付を更新するコードを見つけ、自分なりに少し手を加えてみたのですが、1つだけわからないことがあります。
var mon = now.getMonth()+1; //1を足す
と書いてあるのですが、7月だったら8月になるということでしょうか?でも、Web上ではきちんと現在の7月と表示されています。
どうして1を足すのか、原理をわかりやすく教えていただけると嬉しいです。
よろしくお願い致します。

Javascript

1 2window.onload=function(){ 3document.getElementById("view_today").innerHTML = getToday(); 4} 5 6function getToday() { 7 var now = new Date(); 8 9 var mon = now.getMonth()+1; //1を足す 10 var day = now.getDate(); 11 var you = now.getDay(); //曜日(0~6=日~土) 12 13 //曜日の選択肢を並べる 14 var youbi = new Array("日","月","火","水","木","金","土"); 15 //Web上の画面に表示 16 var s = mon + "月" + day + "日 (" + youbi[you] + ")"; 17 return s; 18} 19 20
supereater712👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

getMonthメソッド0オリジンだからです。つまり、getMonthメソッドでは、1月は0、2月は1、...12月は11となるので、1を足しています。

投稿2017/07/07 12:05

編集2017/07/07 12:07
s8_chu

総合スコア14731

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

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

miramikan

2017/07/07 12:08

よくわかりました!ありがとうございます!! 日付は、どうして1を足さないのでしょうか?
s8_chu

2017/07/07 12:11

getDateメソッドが返す値が1オリジンで、ちゃんと1~31のいずれかの値を返すからです。
miramikan

2017/07/07 12:19

勉強になります! もう1つだけお聞きしたいのですが、なぜ、getMonthメソッドは0オリジンなのrに、getDateメソッドが返す値が1オリジンなのでしょうか?それはそういう決まりに基づいているのでしょうか?何度も質問してしまってすみません汗
s8_chu

2017/07/07 13:00

otnさんの回答にも書いてあることを含みますが...。 getDateメソッドについては、0日というものはないので1オリジンになります。getMonthメソッドは、英語圏では月をJanuary, February, March...と表現し、1オリジンである必要はないので0オリジンになっているのではないかと思います。
miramikan

2017/07/09 01:35

ありがとうございます!大変よくわかりました!!
guest

0

もう1つだけお聞きしたいのですが、なぜ、getMonthメソッドは0オリジンなのrに、getDateメソッドが返す値が1オリジンなのでしょうか?

JavaScriptをもし日本人が作っていればgetMonthも1オリジンで作っていると思います。実際、Rubyだと相当するメソッドは1オリジンです。
日本以外全部かどうか知りませんが、少なくとも英米人は月を英単語で表します。Jan, Feb, ・・・
var mon = ["Jan","Feb","Mar",・・・,"Dec"][now.getMonth()];
で、月が得られます。1オリジンだと-1しないといけない。
これは、JavaScript独自では無くて、Cのライブラリもそうです。

日は英米人も数字で表しますので、1オリジンです。

投稿2017/07/07 12:33

otn

総合スコア84423

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

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

maisumakun

2017/07/07 12:40

中国語では、「一月」~「十二月」が数字そのままなどころか、日曜日以外は「星期一」~「星期六」と曜日まで番号になっています。
miramikan

2017/07/09 01:35

ありがとうございます!勉強になります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問