前提
サイトにカウントダウンを設置したいのですが、終了時間を11/28 00:00:00で設定したいのですが、
今は月末に設定されております。
以下のURLを見て設定いたしました。
https://mgmgblog.com/?p=2595
該当のソースコード
html
1<div id="countdownArea" class="countdown"> 2 <span id="countdown-day"></span>日 3 <span id="countdown-hour"></span>時間 4 <span id="countdown-min"></span>分 5 <span id="countdown-sec"></span>秒 6</div>
※3行目を書き換えればよいようなのですが、うまくいきませんでした。
js
1let countdown = setInterval(function(){ 2 const now = new Date() //今の日時 3 const target = new Date(now.getFullYear(), now.getMonth() + 1, 0,'23','59','59') //ターゲット日時を取得 4 const remainTime = target - now //差分を取る(ミリ秒で返ってくる 5 6 //指定の日時を過ぎていたら処理をしない 7 if(remainTime < 0) return false 8 9 //差分の日・時・分・秒を取得 10 const difDay = Math.floor(remainTime / 1000 / 60 / 60 / 24) 11 const difHour = Math.floor(remainTime / 1000 / 60 / 60 ) % 24 12 const difMin = Math.floor(remainTime / 1000 / 60) % 60 13 const difSec = Math.floor(remainTime / 1000) % 60 14 15 //残りの日時を上書き 16 document.getElementById("countdown-day").textContent = difDay 17 document.getElementById("countdown-hour").textContent = difHour 18 document.getElementById("countdown-min").textContent = difMin 19 document.getElementById("countdown-sec").textContent = difSec 20 21 //指定の日時になればカウントを止める 22 if(remainTime < 0) clearInterval(countdown) 23 24}, 1000) //1秒間に1度処理
↓に変更を加えました。
以下のようにしてみたのですが、終了しましたに書き換わりませんでした。
時計表示がそのまま、表示に残っていおり、
「終了しました」は、表示されない状況です。
cssをあてるために、ほんの少しマークアップを変更したことが原因でしょうか。。。
HTML
1<div id="countdownArea" class="countdown"> 2終了まであと...<br><br> 3<span class="time_set"><span id="countdown-day"></span>Days</span><span class="point">:</span> 4<span class="time_set"><span id="countdown-hour"></span>Hours</span><span class="point">:</span> 5<span class="time_set"><span id="countdown-min"></span>Mins</span><span class="point">:</span> 6<span class="time_set"><span id="countdown-sec"></span>Secs</span><span class="point">:</span> 7</div>
javascript
1let countdown = setInterval(function(){ 2const now = new Date() //今の日時 3const target = new Date(now.getFullYear(), 10, 23, 13, 38, 00); //ターゲット日時を取得 4const remainTime = target - now //差分を取る(ミリ秒で返ってくる 5 6//指定の日時を過ぎていたら処理をしない 7if(remainTime < 0) return false 8 9//差分の日・時・分・秒を取得 10const difDay = Math.floor(remainTime / 1000 / 60 / 60 / 24) 11const difHour = Math.floor(remainTime / 1000 / 60 / 60 ) % 24 12const difMin = Math.floor(remainTime / 1000 / 60) % 60 13const difSec = Math.floor(remainTime / 1000) % 60 14 15//残りの日時を上書き 16document.getElementById("countdown-day").textContent = difDay 17document.getElementById("countdown-hour").textContent = difHour 18document.getElementById("countdown-min").textContent = difMin 19document.getElementById("countdown-sec").textContent = difSec 20 21//指定の日時になったら、 22if (remainTime < 0) { 23// カウントを止めて 24clearInterval(countdown); 25// メッセージを表示する 26const countdownArea = document.getElementById('countdownArea'); // 追加 27countdownArea.innerHTML = '終了いたしました'; // 追加 28} 29 30}, 1000)//1秒間に1度処理
回答1件
あなたの回答
tips
プレビュー