我在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 !!!
怎么回事?
答案 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);