2014-11-03 54 views
-2

我正在使用下面的腳本來創建動態日期。明天的動態javaScript日期指向日期

的HTML:

<span id="spanDate"></span> 

腳本:

var months = ['01','02','03','04','05','06','07', 
     '08','09','10','11','12'];  
     var tomorrow = new Date(Date.now() + (1000*3600*24)); 
     //tomorrow.setTime(tomorrow.getTime() + (1000*3600*24));  
     document.getElementById("spanDate").innerHTML = ('00' + tomorrow.getDate()).slice(-2) + "/" + months[tomorrow.getMonth()] + "/" + tomorrow.getFullYear(); 

Fiddle Link

會發生什麼事是,當我使這個代碼,它顯示我約會第二天(i。 e明天)從我的機器日期,並沒有顯示我今天的日期。這是爲什麼發生?

+0

什麼是預期的輸出?你想要這個http://jsfiddle.net/n4e87x6k/4/ – Manwal 2014-11-03 12:44:37

+0

預期的輸出應該是今天的日期,這與我的機器日期類似,但我得到一個明天的日期,即從我的機器前面的日期。 – Nitesh 2014-11-03 12:45:58

+1

你有沒有試過'var tomorrow = new Date();'而不是'var tomorrow = new Date(Date.now()+(1000 * 3600 * 24));'? – Manwal 2014-11-03 12:46:38

回答

2

因爲您在初始化日期時添加了一天?

//You add 1000*3600*24 milliseconds: 1 day ===> outcome is tomorrow 
tomorrow.setTime(tomorrow.getTime() + (1000*3600*24)); 

嘗試

var tomorrow = new Date(Date.now()); 

小提琴:http://jsfiddle.net/n4e87x6k/3/

也許它也有用到您的參數從 「明天」 到 「今天」 ;-)

+0

爲你+1努力。它像一個魅力。 – Nitesh 2014-11-03 12:50:02

1

這種變化是因爲你加在Date構造函數上一整天到當前時間。如果你想顯示當前的日期使用

var today = new Date(); 

並更換

document.getElementById("spanDate").innerHTML = ('00' + tomorrow.getDate()).slice(-2) + "/" + months[tomorrow.getMonth()] + "/" + tomorrow.getFullYear(); 

document.getElementById("spanDate").innerHTML = ('00' + today.getDate()).slice(-2) + "/" + months[today.getMonth()] + "/" + today.getFullYear(); 
+0

+1爲您的努力。奇蹟般有效。當他首先回答時,應該接受另一個人的回答。 – Nitesh 2014-11-03 12:49:46