2017-06-06 75 views
0

嗨,我是新來的JavaScript,似乎無法理解如何改變這種代碼。從現在到午夜,將剩餘時間變量設置爲時間?

我想改變這種做法,剩下的時間就是當用戶加載頁面,直到午夜。例如,如果是晚上7點的剩餘時間將5小時0分鐘0秒,或者如果它是7:45 PM剩餘時間將4小時15分鐘0秒。

function startTimer(start, duration, display) { 
    var diff, minutes, seconds; 
    function timer(){ 
     diff = duration - (((Date.now() - start)/1000) | 0); 
     minutes = (diff/60) | 0; 
     seconds = (diff % 60) | 0; 
     minutes = minutes < 10 ? "0" + minutes : minutes; 
     seconds = seconds < 10 ? "0" + seconds : seconds; 
     display.textContent = minutes + ":" + seconds; 
     if (diff <= 0) { 
      clearInterval(inti); 
      document.getElementById("countdownhere").innerHTML 

編輯:哎呀這裏的完整的代碼,感謝喬納斯W指出這一點!

var d = new Date(); 

(function($){$.fn.progressbar=function(){var a="<p>Countdown Timer!</p>"+"<div class='progressbar'><div style='width:100%'></div></div>";this.addClass('items-count');this.html(a+this.html());updateMeter(this);var b=this; 

{$("#progress_bar").progressbar();var tag="ctdn-12-12".match(/\d+/g);var hour=14;var theDaysBox=$("#numdays");var theHoursBox=$("#numhours");var theMinsBox=$("#nummins");var theSecsBox=$("#numsecs");var d=new Date();var n=d.getDay();var date=1;var gg=0;var hh=0;var ii=0;var nsec=0-d.getSeconds();if(nsec<0){nsec=60-d.getSeconds();gg=1}var nmin=0-d.getMinutes()-gg;if(nmin<0){nmin=60-d.getMinutes()-gg;hh=1}var nhrs=14-d.getHours()-hh;if(nhrs<0){nhrs=38-d.getHours()-hh;ii=1}var ndat=date-1;if(ndat<0){var mmon=d.getMonth();ndat=30+date-d.getDate()-ii}theSecsBox.html(nsec);theMinsBox.html(nmin);theHoursBox.html(nhrs);theDaysBox.html(ndat);var refreshId=setInterval(function(){var e=theSecsBox.text();var a=theMinsBox.text();var c=theHoursBox.text();var b=theDaysBox.text();if(e==0&&a==0&&c==0&&b==0){}else{if(e==0&&a==0&&c==0){theDaysBox.html(b-1);theHoursBox.html("23");theMinsBox.html("59");theSecsBox.html("59")}else{if(e==0&&a==0){theHoursBox.html(c-1);theMinsBox.html("59");theSecsBox.html("59")}else{if(e==0){theMinsBox.html(a-1);theSecsBox.html("59")}else{theSecsBox.html(e-1)}}}}},1000);});</script> 

<div class="items-count" id="progress_bar"></div><div id="clock-ticker" class="clearfix"><div class="block"><span class="flip-top" id="numdays">0</span><br><span class="label">Days</span></div><div class="block"><span class="flip-top" id="numhours">1</span><br><span class="label">Hours</span></div><div class="block"><span class="flip-top" id="nummins">23</span><br><span class="label">Minutes</span></div><div class="block"><span class="flip-top" id="numsecs">36</span><br><span class="label">Seconds</span></div> 

+0

嘗試[moment.js(HTTPS:/ /momentjs.com),你可以使用瞬間()endOf(「天」) – ndufreche

+1

庵孤單代碼所缺少... –

+0

喬納斯W - 謝謝你是對的!我已經編輯並解決了這個問題,對不起!你能更新你的答案嗎?謝謝 – user1009762

回答

0

可能:

var midnight=new Date(); 
midnight.setHours(0); 
midnight.setDate(midnight.getDate()+1); 
var display=document.body; 
startTimer(new Date(),midnight,display); 

調用setHours設置日期到今天午夜,那麼我們得到的第二天...