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

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

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

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

受付中

カレンダーの日付を切り替えるタイミングの指定

w.itsuki
w.itsuki

総合スコア1

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

0回答

1リアクション

1クリップ

175閲覧

投稿2022/10/05 05:25

編集2022/10/05 05:40

前提

注文された商品の発送予定日カレンダーを作成したのですが、
日付を切り替えるタイミングを時間指定するにはどのように記述すれば良いでしょうか。

実現したいこと

毎日12時のタイミングでカレンダーの日付が切り替わるように設定したいです。

該当のソースコード

<body onLoad="ShippingTime(),WorkingCol()"> <div class="shop_schedule box"> <div class="schedule-wrap"> <div class="text"><time><span class="now-month"></span>月<span class="now-day"></span>日11:59までのご注文で</time></div> <div class="text"><time><span id="ShpTime"><span class="m"></span>月<span class="d"></span>日(<span class="w"></span>)</time>出荷予定です </span></div> </div> </div> <div class="sort box pc"> <div class="box_wrap block"> <div class="text">都道府県絞り込み</div> <div class="select flex"> <select id="sb" onchange="ShippingTime();"> <option value="area3">北海道</option> <option value="area2">青森県</option> <option value="area2">岩手県</option> <option value="area2">秋田県</option> <option value="area2">宮城県</option> <option value="area2">山形県</option> <option value="area2">福島県</option> <option value="area1">茨城県</option> <option value="area1">栃木県</option> <option value="area1">群馬県</option> <option value="area1">埼玉県</option> <option value="area1">千葉県</option> <option value="area1" selected>東京都</option> <option value="area1">神奈川県</option> <option value="area2">新潟県</option> <option value="area2">富山県</option> <option value="area2">石川県</option> <option value="area2">福井県</option> <option value="area2">山梨県</option> <option value="area2">長野県</option> <option value="area2">岐阜県</option> <option value="area2">静岡県</option> <option value="area2">愛知県</option> <option value="area2">三重県</option> <option value="area2">滋賀県</option> <option value="area2">京都府</option> <option value="area2">大阪府</option> <option value="area2">兵庫県</option> <option value="area2">奈良県</option> <option value="area2">和歌山県</option> <option value="area3">鳥取県</option> <option value="area3">島根県</option> <option value="area3">岡山県</option> <option value="area3">広島県</option> <option value="area3">山口県</option> <option value="area3">徳島県</option> <option value="area3">香川県</option> <option value="area3">愛媛県</option> <option value="area3">高知県</option> <option value="area3">福岡県</option> <option value="area3">佐賀県</option> <option value="area3">長崎県</option> <option value="area3">熊本県</option> <option value="area3">大分県</option> <option value="area3">宮崎県</option> <option value="area3">鹿児島県</option> <option value="area3">沖縄県</option> </select> </div> <div class="day"> <div class="result">お届け日指定可能<apan class="wrap"><span class="m_p"></span>月<span class="d_p"></span>日(<span class="w_p"></span>)〜</apan></div> </div> </div> </div> </body> <script> var now_dt = new Date(); $('.now-month').text((""+(now_dt.getMonth()+1)).slice(-2)); $('.now-day').text((""+now_dt.getDate()).slice(-2)); function ShippingTime(){ holDay = new Array( "2022/9/19", "2022/9/23", "2022/10/10", "2022/11/3", "2022/11/23" ); dayWek = new Array("日", "月", "火", "水", "木", "金", "土","日", "月", "火", "水", "木", "金", "土"); dt = new Date(); // 今日から6営業日先を求める for(i = 0; i < 6; i++) { dt.setTime(dt.getTime() + (1 * 24 * 3600 * 1000)); if( dt.getDay() == 6 || dt.getDay() == 0 ) i--; for(j = 0; j < holDay.length; j++) { hd = holDay[j].split("/"); if(hd[0] == dt.getYear() + 1900 && hd[1] == dt.getMonth() + 1 && hd[2] == dt.getDate()) i--; } } shpDt = ""; shpDt += dt.getMonth() + 1; shpDt += dt.getDate(); shpDt += dayWek[dt.getDay()] ; shpDt += ""; $('.m').text((""+(dt.getMonth()+1)).slice(-2)); $('.d').text((""+(dt.getDate())).slice(-2)); $('.w').text((""+(dayWek[dt.getDay()]))); // 都道府県別のお届け指定可能日の設定 if (document.getElementById("sb")) { sBox = document.getElementById("sb").value; if (sBox == "area1") { // 出荷予定日から1日後 dt.setDate(dt.getDate()+1); $('.m_p').text(""+(dt.getMonth()+1)); $('.d_p').text((""+(dt.getDate()))); $('.w_p').text((""+(dayWek[dt.getDay()]))); } else if (sBox == "area2") { // 出荷予定日から2日後 dt.setDate(dt.getDate()+2); $('.m_p').text(""+(dt.getMonth()+1)); $('.d_p').text((""+(dt.getDate()))); $('.w_p').text((""+(dayWek[dt.getDay()]))); } else if (sBox == "area3") { // 出荷予定日から3日後 dt.setDate(dt.getDate()+3); $('.m_p').text(""+(dt.getMonth()+1)); $('.d_p').text((""+(dt.getDate()))); $('.w_p').text((""+(dayWek[dt.getDay()]))); } } } </script>

試したこと

新たな変数(switching)で時間を取得して12時を過ぎたら切り替えるよう記述してみました。

dt = new Date(); switching = new Date('12:00:00'); // 今日から6営業日先を求める if(dt >= switching) { for(i = 0; i < 6; i++) { dt.setTime(dt.getTime() + (1 * 24 * 3600 * 1000)); if( dt.getDay() == 6 || dt.getDay() == 0 ) i--; for(j = 0; j < holDay.length; j++) { hd = holDay[j].split("/"); if(hd[0] == dt.getYear() + 1900 && hd[1] == dt.getMonth() + 1 && hd[2] == dt.getDate()) i--; } } }
Cocode👏を押しています

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

maisumakun

2022/10/05 05:27

> 試したこと 現状ではどのような問題が生じているのですか?
w.itsuki

2022/10/05 05:44

ご指摘ありがとうございます。 for文で6日後の日付を取得して出力しているのですが、 if文で囲うと6日後ではなく今日の日付が表示されるようになってしまいました。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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