2017-07-11 32 views
1
function countDown(){ 
    // Set the date we're counting down to 
    var countDownDate = new Date("july 11, 2017 10:19:00").getTime(); 

    // Update the count down every 1 second 
    var x = setInterval(function() { 

     // Get todays date and time 
     var now = new Date().getTime(); 

     // Find the distance between now an the count down date 
     var distance = countDownDate - now; 

     // Time calculations for days, hours, minutes and seconds 
     var days = Math.floor(distance/(1000 * 60 * 60 * 24)); 
     var hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
     var minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60)); 
     var seconds = Math.floor((distance % (1000 * 60))/1000); 

     // Output the result in an element with id="demo" 
     document.getElementById("demo").innerHTML = days + "d " + hours + "h " 
     + minutes + "m " + seconds + "s "; 

     // If the count down is over, write some text 
     if (distance < 0) { 
      countDownDate = new Date("july 18, 2017 10:19:00").getTime(); 
     } 
    }, 1000); 

} 

countDown(); 

我想要達到的是每週計時器將開始計數到下週。 我在同一天和同一個小時內每週都會有一些東西開始。定時器數據下週開始

我不想每週重寫代碼:/

謝謝。

+0

代碼將在哪裏運行?顯然託管在nodejs中?對? –

+0

爲什麼我需要節點JS?該代碼將在WordPress網站中運行。 –

+0

所以它會在瀏覽器?保證同一個窗口將會開放一週? –

回答

0

爲什麼這麼需要多少計算只是爲了計算有多少秒剩餘下週開始的?例如我正在編寫一個示例代碼來計算它。

function distranceToNextWeekStartInSeconds() { 
 
    var now = new Date() 
 
    var dayDiff = 7 - now.getDay(); 
 
    var startOfNextWeek = new Date(now.valueOf()); 
 
    startOfNextWeek.setDate(now.getDate() + dayDiff); 
 
    startOfNextWeek.setHours(0); 
 
    startOfNextWeek.setMinutes(0); 
 
    startOfNextWeek.setSeconds(0); 
 
    return Math.floor((startOfNextWeek - now)/1000); 
 
} 
 

 
console.log('Seconds remaining to next week start: ' + distranceToNextWeekStartInSeconds())

,你可以簡單地調用你的計時器內該功能的實時計算和顯示的目的,僅此而已。

+0

,你可以計算你的小時:分鐘:秒的功能 –

+0

返回的值的頂部謝謝謝謝謝謝。 –

+0

歡迎您:) –

0

我以爲你想在每個下一個星期二的10:19:00點數。 我現在懶得去測試每個案例,我認爲它應該起作用。

function getNextTuesday() { 
 
    // Get the date from now 
 
    var date = new Date(); 
 

 
    // Set target hour/minute/seconds 
 
    date.setHours(10); 
 
    date.setMinutes(19); 
 
    date.setSeconds(0); 
 

 
    // Seek for the next tuesday 
 
    var actualDay = date.getDay(); 
 
    var targetDay = 2; //Tuesday 
 

 
    // diff will give us the day span between today and the next tuesday 
 
    var diff = targetDay - actualDay; 
 
    
 
    // If the diff is less than 0 (we're sunday or monday, or we fall on the exact day, minutes after the target hour) then add a week 
 
    if (diff < 0 || (date.getTime() - new Date().getTime()) <= 0) { 
 
    diff += 7; 
 
    } 
 

 
    // Finally add the day span to the current date 
 
    date.setDate(date.getDate() + diff); 
 

 
    return date; 
 
} 
 

 
function countDown() { 
 
    // Set the date we're counting down to 
 
    var countDownDate = getNextTuesday(); 
 

 
    // Update the count down every 1 second 
 
    var x = setInterval(function() { 
 

 
    // Get todays date and time 
 
    var now = new Date().getTime(); 
 

 
    // Find the distance between now an the count down date 
 
    var distance = countDownDate - now; 
 

 
    // Time calculations for days, hours, minutes and seconds 
 
    var days = Math.floor(distance/(1000 * 60 * 60 * 24)); 
 
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
 
    var minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60)); 
 
    var seconds = Math.floor((distance % (1000 * 60))/1000); 
 

 
    if (distance < 0) { 
 
     // If the count down is over, write some text 
 
     document.getElementById("demo").innerHTML = 'IT\'S HAPPENING !'; 
 
     countDownDate = getNextTuesday(); 
 
    } else { 
 
     // Output the result in an element with id="demo" 
 
     document.getElementById("demo").innerHTML = days + "d " + hours + "h " + minutes + "m " + seconds + "s "; 
 
    } 
 
    }, 1000); 
 

 
} 
 

 
countDown();
<div id="demo"></div>

+0

非常感謝! –