1

http://jsfiddle.net/skowron_line/zPCBc/1/

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

4

1 回答 1

6

Javascript 月份是从 0 开始的,所以 05 月份实际上是 6 月。由于没有 6 月 31 日,JS 将日期调整为 7 月(js 月​​ 06)1 日。

新的日期代码应为:

var nd1 = new Date(s1[2], parseInt(s1[1])-1, s1[0]);
于 2012-06-19T16:08:27.497 回答