2016-12-17 13 views
0

私はもっとPHPプログラマーであり、Javaスクリプティングはまだ私には新しいものです。カウンターのスクリプトや質問はたくさんありますが、私が次のことをするために見つけることはできません。私は私のベースのスクリプトとして次のスクリプトを使用しています:Styled JavaScript Countdown Clock現在の時間を使用して時間をカウントダウンし、次の時間カウントダウンにリセットする

function getTimeRemaining(endtime) { 
 
    var t = Date.parse(endtime) - Date.parse(new Date()); 
 
    var seconds = Math.floor((t/1000) % 60); 
 
    var minutes = Math.floor((t/1000/60) % 60); 
 
    var hours = Math.floor((t/(1000 * 60 * 60)) % 24); 
 
    var days = Math.floor(t/(1000 * 60 * 60 * 24)); 
 
    return { 
 
    'total': t, 
 
    'days': days, 
 
    'hours': hours, 
 
    'minutes': minutes, 
 
    'seconds': seconds 
 
    }; 
 
} 
 

 
function initializeClock(id, endtime) { 
 
    var clock = document.getElementById(id); 
 
    var daysSpan = clock.querySelector('.days'); 
 
    var hoursSpan = clock.querySelector('.hours'); 
 
    var minutesSpan = clock.querySelector('.minutes'); 
 
    var secondsSpan = clock.querySelector('.seconds'); 
 

 
    function updateClock() { 
 
    var t = getTimeRemaining(endtime); 
 

 
    daysSpan.innerHTML = t.days; 
 
    hoursSpan.innerHTML = ('0' + t.hours).slice(-2); 
 
    minutesSpan.innerHTML = ('0' + t.minutes).slice(-2); 
 
    secondsSpan.innerHTML = ('0' + t.seconds).slice(-2); 
 

 
    if (t.total <= 0) { 
 
     clearInterval(timeinterval); 
 
    } 
 
    } 
 

 
    updateClock(); 
 
    var timeinterval = setInterval(updateClock, 1000); 
 
} 
 

 
var deadline = new Date(Date.parse(new Date()) + 15 * 24 * 60 * 60 * 1000); 
 
initializeClock('clockdiv', deadline);
body{ 
 
\t text-align: center; 
 
\t background: #00ECB9; 
 
    font-family: sans-serif; 
 
    font-weight: 100; 
 
} 
 

 
h1{ 
 
    color: #396; 
 
    font-weight: 100; 
 
    font-size: 40px; 
 
    margin: 40px 0px 20px; 
 
} 
 

 
#clockdiv{ 
 
\t font-family: sans-serif; 
 
\t color: #fff; 
 
\t display: inline-block; 
 
\t font-weight: 100; 
 
\t text-align: center; 
 
\t font-size: 30px; 
 
} 
 

 
#clockdiv > div{ 
 
\t padding: 10px; 
 
\t border-radius: 3px; 
 
\t background: #00BF96; 
 
\t display: inline-block; 
 
} 
 

 
#clockdiv div > span{ 
 
\t padding: 15px; 
 
\t border-radius: 3px; 
 
\t background: #00816A; 
 
\t display: inline-block; 
 
} 
 

 
.smalltext{ 
 
\t padding-top: 5px; 
 
\t font-size: 16px; 
 
}
<h1>Countdown Clock</h1> 
 
<div id="clockdiv"> 
 
    <div> 
 
    <span class="days"></span> 
 
    <div class="smalltext">Days</div> 
 
    </div> 
 
    <div> 
 
    <span class="hours"></span> 
 
    <div class="smalltext">Hours</div> 
 
    </div> 
 
    <div> 
 
    <span class="minutes"></span> 
 
    <div class="smalltext">Minutes</div> 
 
    </div> 
 
    <div> 
 
    <span class="seconds"></span> 
 
    <div class="smalltext">Seconds</div> 
 
    </div> 
 
</div>

を私は現在の時刻を使用して、それが次の時間にカウントダウンさせ、それがリセットされるにして、再度開始したいです。したがって、時間は00:00(分/秒)になり、59:59から再びカウントダウンするようにリセットされます。助けてください!!!

+0

[*最小限の補完を作成する方法teと検証可能な例*](http://stackoverflow.com/help/mcve)を参照してください。あなたがする必要があるのは、日と時間の値を印刷することではありません。そして、 'Date.parse(new Date())'は狂っていて、 'Date.now()'と同じです。Dateを作成し、それを文字列に変換し、それをDateに解析して取得します。 'Date.now()'は現在の時刻の値を直接取得します。 – RobG

答えて

0

3600から現在の分* 60 +秒を引くと、次の1時間までの時間が得られます。 100日を追加して、カウントダウンが次の100日間有効になるようにしましょう。

function getTimeRemaining(endtime) { 
 
    var t = Date.parse(endtime) - Date.parse(new Date()); 
 
    var seconds = Math.floor((t/1000) % 60); 
 
    var minutes = Math.floor((t/1000/60) % 60); 
 
    var hours = Math.floor((t/(1000 * 60 * 60)) % 24); 
 
    var days = Math.floor(t/(1000 * 60 * 60 * 24)); 
 
    return { 
 
    'total': t, 
 
    'days': days, 
 
    'hours': hours, 
 
    'minutes': minutes, 
 
    'seconds': seconds 
 
    }; 
 
} 
 

 
function initializeClock(id, endtime) { 
 
    var clock = document.getElementById(id); 
 
    var daysSpan = clock.querySelector('.days'); 
 
    var hoursSpan = clock.querySelector('.hours'); 
 
    var minutesSpan = clock.querySelector('.minutes'); 
 
    var secondsSpan = clock.querySelector('.seconds'); 
 

 
    function updateClock() { 
 
    var t = getTimeRemaining(endtime); 
 

 
    minutesSpan.innerHTML = ('0' + t.minutes).slice(-2); 
 
    secondsSpan.innerHTML = ('0' + t.seconds).slice(-2); 
 

 
    if (t.total <= 0) { 
 
     clearInterval(timeinterval); 
 
    } 
 
    } 
 

 
    updateClock(); 
 
    var timeinterval = setInterval(updateClock, 1000); 
 
} 
 

 
var now = Date.parse(new Date()); 
 
var seconds = Math.floor((now/1000) % 60); 
 
var minutes = Math.floor((now/1000/60) % 60); 
 
var left_to_hour = 60 * 60 * 1000 - (minutes * 60 + seconds) * 1000; 
 
// add 100 days 
 
var deadline = new Date(now + left_to_hour + 100 * 24 * 60 * 60 * 1000); 
 

 
initializeClock('clockdiv', deadline);
body { 
 
\t text-align: center; 
 
\t background: #00ECB9; 
 
    font-family: sans-serif; 
 
    font-weight: 100; 
 
} 
 

 
h1 { 
 
    color: #396; 
 
    font-weight: 100; 
 
    font-size: 40px; 
 
    margin: 40px 0px 20px; 
 
} 
 

 
#clockdiv{ 
 
\t font-family: sans-serif; 
 
\t color: #fff; 
 
\t display: inline-block; 
 
\t font-weight: 100; 
 
\t text-align: center; 
 
\t font-size: 30px; 
 
} 
 

 
#clockdiv > div { 
 
\t padding: 10px; 
 
\t border-radius: 3px; 
 
\t background: #00BF96; 
 
\t display: inline-block; 
 
} 
 

 
#clockdiv div > span { 
 
\t padding: 15px; 
 
\t border-radius: 3px; 
 
\t background: #00816A; 
 
\t display: inline-block; 
 
} 
 

 
.smalltext { 
 
\t padding-top: 5px; 
 
\t font-size: 16px; 
 
}
<h1>Countdown Clock</h1> 
 
<div id="clockdiv"> 
 
    <div> 
 
    <span class="minutes"></span> 
 
    <div class="smalltext">Minutes</div> 
 
    </div> 
 
    <div> 
 
    <span class="seconds"></span> 
 
    <div class="smalltext">Seconds</div> 
 
    </div> 
 
</div>

+0

Chris G !!!! Youre a GENIOUS !!!!!!ワオ!!!どうもありがとうございました。 Isaidのように、私はJavascriptのプログラマーではなく、あなたはGeniousです。どうもありがとうございます!!! – Schalk

0

あなたは例えば、それは次のフル時間に分と秒を返すようgetTimeRemaining残りの機能を変更する必要があります

/* Return minutes and seconds to next hour 
 
** @returns {Object} minutes: minutes remaining 
 
**     seconds: seconds remaining 
 
*/ 
 
function getTimeRemaining() { 
 
    var t = Date.now(); 
 
    var seconds = (60 - Math.floor(t % 6e4/1e3)) % 60; 
 
    var minutes = 60 - Math.ceil(t % 3.6e6/6e4) + (seconds? 0:1); 
 
    return { 
 
    'minutes': ('0' + minutes).slice(-2), 
 
    'seconds': ('0' + seconds).slice(-2)  }; 
 
} 
 

 
// Simple show remaining function 
 
function showRemaining() { 
 
    var r = getTimeRemaining(); 
 
    document.getElementById('clock').textContent = (r.minutes + ':' + ('0' + r.seconds).slice(-2)); 
 
    // Run again just after next full second 
 
    setTimeout(showRemaining, 1020 - (Date.now() % 1000)); 
 
} 
 

 
showRemaining();
<span id="clock"></span>

+0

ありがとうRobとChris。あなたたちは世界をより良い場所にします;-) – Schalk

関連する問題