前提
注文された商品の発送予定日カレンダーを作成したのですが、
日付を切り替えるタイミングを時間指定するにはどのように記述すれば良いでしょうか。
実現したいこと
毎日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--; } } }

あなたの回答
tips
プレビュー