2012-06-19 41 views
1

http://jsfiddle.net/skowron_line/zPCBc/1/javascript日期不同勢天等於毫秒

var d1 = '31.05.2012'; 
var d2 = '01.06.2012'; 

var s1 = d1.split('.'); 
var s2 = d2.split('.'); 

var nd1 = new Date(s1[2], s1[1], s1[0]); 
var nd2 = new Date(s2[2], s2[1], s2[0]); 

$('#a').html(s1 + ' - '+ s2 +' = '+ nd2.getTime() +' - '+ nd1.getTime()); 

$('#b').html(
nd1.getFullYear() +'-'+ nd1.getMonth() +'-'+ nd1.getDate() +'<br />'+ nd2.getFullYear() +'-'+ nd2.getMonth() +'-'+ nd2.getDate() 
); 

有人可以解釋我什麼是錯的這個代碼??。爲什麼31.05.2012我等於01.06.2012

回答

6

Javascript月份爲0,所以05月份實際上是6月份。由於沒有6月31日,JS將日期調整爲7月(js月06日)1日。

新的日期代碼應該是:

var nd1 = new Date(s1[2], parseInt(s1[1])-1, s1[0]); 
+0

我知道,但現在它的http://jsfiddle.net/skowron_line/zPCBc/3/'2012-4-31'和'2012-5-1 '而不是我想要的 –

+0

從4月份有31天的時間? 4月在Javascript是第3個月。 –

+0

好吧,現在我知道你的意思。愚蠢的我 –