Javascript 日期比较只比较年份

Javascript 日期比较只比较年份,javascript,html,date,Javascript,Html,Date,考虑以下代码: var from = new Date(document.getElementById("from").value); var to = new Date(document.getElementById("to").value); var yeardate = new Date(from.setMonth(from.getMonth()+12)); if (from.getTime() > to.getTime()) { alert(from.getTime()

考虑以下代码:

var from = new Date(document.getElementById("from").value);
var to = new Date(document.getElementById("to").value);
var yeardate = new Date(from.setMonth(from.getMonth()+12));

if (from.getTime() > to.getTime()) {
    alert(from.getTime() > to.getTime());
}
这些字段是html5日期字段

例如,我使用:

from: 2015-06-30

to: 2018-07-31
它输出false,但当我这样做时:

from: 2015-06-30

to: 2015-07-31
由于06-30不大于07-31,因此输出true,但仍应为false

它看起来只检查年份,我应该如何修复它

编辑:

根据@Laxmikant Dange的建议,我尝试了以下方法

alert((new Date('2015-06-30').getTime() > new Date('2015-07-31').getTime()));
它现在返回false,但当我将对象存储到变量时,如下所示:

var from = new Date('2015-06-30');
var to = new Date('2015-07-31');
alert(from.getTime() > to.getTime());

它再次返回
true

检查日期元素的值,可能有问题。这是您的值,在这两种情况下都返回false

getTime()方法返回的值是自1970年1月1日00:00:00 UTC以来的毫秒数。这是参考资料

因此,这不仅仅是比较年份

console.log(“案例1”,新日期('2015-06-30').getTime()>新日期('2018-07-31').getTime());

console.log(“案例2”,新日期('2015-06-30').getTime()>新日期('2015-07-31').getTime())你希望它做什么?最后一个为我返回false。这是真的wierd,我测试了你的代码,当我做你所做的事情时,它在两种情况下都返回false。但当我将它们放入变量中时,它又变为真。@morbidCode,尝试控制日期字段的值,检查返回的内容,包含“from”字段的日期对象返回146724800000,包含“to”字段的日期对象返回1467248000001438300800000@morbidCode,这是因为您将从日期开始添加12个月。检查代码中的第三行。是的,我现在明白了,谢谢。但是当我返回日期时,真的是休息一天吗?就像我们的示例中的新日期('2015-06-30')6月29日返回?