2016-01-16 149 views
0

//這是我想到的..但我猜目前的日期格式和指定的日期格式是不同的。請幫助。倒數計時器從當前日期到javascript中的具體日期

`<script> 
    var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds 
    var firstDate = new Date(); 
    var secondDate = new Date(2016,02,20); 
    var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay))); 
    document.getElementById("demo").innerHTML =diffDays; 
    </script>` 

回答

0

您可以使用類似

(new Date(new Date(2016, 01, 05).toDateString()).getTime() - new Date(new Date().toDateString()))/(24*60*60*1000) 

有時間()和新的日期差異被新的返回日期(YYYY,MM,DD)。由於第一個將返回當前時間,第二個將返回日期,時間爲上午00:00。這會在時間戳上產生差異,因此結果會有所不同。

如果你有更多的日期相關的操作,你總是可以使用momentjs。

+0

我想運行一個反向倒計時。可以說從今天到2月5日,只顯示剩下的天數。 所以我嘗試從系統獲取當前日期並計算兩個日期之間的差異。 –

0

Date.prototype.getTime()返回以毫秒爲單位的差異,因此您應該在oneDay(1000 * 3600 * 24)上劃分時差。

var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds 
    var firstDate = new Date(); 
    var secondDate = new Date(2016,02,20); 
    var diffDays = Math.abs(firstDate - secondDate); 
    document.getElementById("demo").innerHTML = Math.round (diffDays/oneDay); 
+0

感謝您的回答,但如果您在此處包含完整代碼,則不僅僅是鏈接到mdn/ – user2950593

+0

添加的代碼,差異僅在最後一個原始代碼中。 –

0

你可以做這樣的事情 -

<script> 
    var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds 
    var firstDate = new Date(); 
    var secondDate = new Date(2016,02,20); 
    var diffDays = 'expired'; 
    if(secondDate>=firstDate){ 
     diffDays = parseInt((secondDate - firstDate)/oneDay) + ' days left'; 
    } 
    document.getElementById("demo").innerHTML =diffDays; 
</script> 

這裏是小提琴fiddle