1

我从 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 !!!

怎么来的 ??

4

2 回答 2

2

正如评论所指出的,日期的解析还有一些不足之处。您可以使用此构造函数简洁

new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]
于 2013-09-09T17:36:45.713 回答
1

您需要按部分解析日期。

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

2018 年 9 月 30 日:

var date1 = new Date(30, 9, 2018);
于 2013-09-09T17:39:34.233 回答