Javascript错误的日期格式

时间:2013-09-09 17:28:47

标签: javascript date dom

我在javascript中从字符串格式化日期对象,但是当我打印格式化的日期时,我发现它增加了两年!!

alert("Date1-Without-conversion:" + document.getElementById(arr[0]).value);
alert("Date2-Without-conversion:" + document.getElementById(arr[1]).value);

打印:

30/9/2018
04/10/2018

date1Str=document.getElementById(arr[0]).value;
date2Str=document.getElementById(arr[1]).value;

date1 = new Date(date1Str);
date2 = new Date(date2Str);

alert("Date1-After-conversion:" + date1);
alert("Dat2-After-conversion:" + date2);

打印:

Tue Jun 09 2020 00:00:00 GMT+0200(Egypt Standard Time)
Tue Apr 10 2018 00:00:00 GMT+0200(Egypt Standard Time)
问题是,当我使用时:

date1.getFullYear() OR `date2.getFullYear()` it prints 2020 !!!

怎么回事?

2 个答案:

答案 0 :(得分:2)

日期的解析留下了一些需要的东西,正如评论所指出的那样。你可以使用这个构造函数来简洁

new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]

答案 1 :(得分:1)

您需要按部分解析日期。

var date1 = new Date(day, month, year);

对于30/9/2018:

var date1 = new Date(30, 9, 2018);