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

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

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

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

Q&A

解決済

2回答

799閲覧

Javascript: new Date()について

rails_ruby

総合スコア87

JavaScript

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

0グッド

0クリップ

投稿2019/02/11 01:07

編集2019/02/11 02:20

前提・実現したいこと

Javascriptの勉強の一環ですので「このプログラムに何の意味があるの?」とかと突っ込まずにご教示していただけると幸いです。
曜日を選択した時に先週と今週の日付をコンソールで表示させたい。
例)
今日が2019/2/11 月曜日の時
セレクトボックスで水曜日と選択したら、
先週の水曜日は2019/2/16
今週の水曜日は2019/2/13
と表示させたい。

発生している問題・エラーメッセージ

今日の日にちの取得、日付に該当する曜日を表示させるところまでは出来ました。
分からないこととしては、曜日を選択した時に、先週と今週のその曜日の日付の取得方法が分からなくて困っています。

該当のソースコード

html

1<select id="date"> 2<option value="">*チーム選択</option> 3<option value="mon">月曜日</option> 4<option value="tue">火曜日</option> 5<option value="wed">水曜日</option> 6<option value="thu">木曜日</option> 7<option value="fri">金曜日</option> 8<option value="sat">土曜日</option> 9<option value="sun">日曜日</option> 10</select> 11<input type="button" value="go" id="btn_date">

js

1window.addEventListener('DOMContentLoaded', function(){ 2 document.querySelector('#btn_date').addEventListener('click',function(){ 3 4 var WeekChars = [ "日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日" ]; 5 var dObj = new Date( /* 何らかの日付 */ ); 6 var wDay = dObj.getDay(); 7 console.log(dObj+WeekChars[wDay]); 8 9 const str = document.getElementById("date").value; 10 console.log('今週' + str +'は' + '日です');//今週tueは日です 11 12 }); 13});

###追記
今日の日付からsetDate(dObj.getDate() +(-) 7);で先週まで遡るのと翌週まで進ませるところまではなんとか出来ました。
適当に選択した曜日から今週の日付と先週の日付を取得する方法をご教示いただきたいです。

###現在のコード

html

1<select id='select'></select>

js

1//セレクトボックス 2var week = [ "日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日" ]; 3 4for(var i=0;i<week.length;i++){ 5let op = document.createElement("option"); 6op.text = week[i]; 7document.getElementById("select").appendChild(op); 8} 9 10window.addEventListener('DOMContentLoaded', function(){ 11 document.querySelector('#btn_date').addEventListener('click',function(){ 12 13 var dObj = new Date( /* 何らかの日付 */ ); 14 var wDay = dObj.getDay(); 15 console.log(week[wDay]); 16 17 const str = document.getElementById("select").value; 18 //console.log('今週' + str +'は' + '日です'); 19 console.log(wDay); 20 console.log(str.length); 21 console.log(wDay === str.length);//optionで選択した配列の要素数を取得したい。 22 23 }); 24});

###実現したいこと
セレクトのoptionで選択した配列の要素数を取得する方法を知りたい。

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

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

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

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

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

kei344

2019/02/11 02:36

質問内容が大幅に変わっています。(最初の命題は解決しています)追加で質問をではなく、新しく質問をしなおせばよいのでは?
rails_ruby

2019/02/11 02:39

失礼しました。そう致します。
guest

回答2

0

JavaScript

1 var WeekChars = [ "日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日" ];

コードを書く前に、アルゴリズムを考えるところから始めて下さい。
一週間の初め/終わりが上記に準ずるなら、

  • 一週間前は7日前(-7)
  • 一週間後は7日後(+7)
  • 月曜日(本日)と水曜日(指定日)の差分は2日後(+2)

という規則性が導き出せるわけですから、

JavaScript

1var date = new Date; 2date.setDate(date.getDate() + 7 + 2)); // 1週間後の水曜日

+2 は WeekChars を元にindex差分を計算すれば良いでしょう。

Re: rails_ruby さん

投稿2019/02/11 02:42

think49

総合スコア18162

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

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

rails_ruby

2019/02/11 02:58 編集

申し訳ございませんでした。私の質問の仕方が悪く誤解を招いてしまい申し訳ございませんでした。 おしゃって頂いていることに関しては、理解しております。 私が本質問で聞きたかったこととしては、index差分の部分に関して伺いたく質問を登校させて頂いたのですが、私の質問の仕方が悪くご迷惑をおかけして申し訳ございませんでした。
guest

0

ベストアンサー

その日付データから、7日足す、7日引く、ということをすればいいのです

投稿2019/02/11 01:09

y_waiwai

総合スコア87747

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

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

rails_ruby

2019/02/11 01:31

今日の日付からsetDate(dObj.getDate() +(-) 7);で先週まで遡るのと翌週まで進ませるところまでは何とか出来ました。 しかし、今日の日付から遡ったり、進めるのではなく適当に選択した曜日から今週の日付と先週の日付を取得させたくその方法が分からないため質問させて頂きました。 もし宜しければ、その方法についてご教示いただくことは出来ないでしょうか?
y_waiwai

2019/02/11 01:41

本日の日付をとってきて、曜日の数値から目的の曜日との差を取れば何日前後かがわかるので、そこから今週の曜日は出せるでしょう
rails_ruby

2019/02/11 02:24

仰って頂いたことを参考にコードを大幅に変えました。 それでなんですが、セレクトで選択した配列の要素の番号を取得する方法についてご教示いただけないでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問