一尘不染

仅比较日期部分,而不比较JavaScript中的时间

javascript

以下代码有什么问题?

也许只比较日期而不是时间会更简单。我也不确定如何执行此操作,因此我进行了搜索,但找不到确切的问题。

顺便说一句,当我在警报中显示两个日期时,它们显示为完全相同。

我的代码:

window.addEvent('domready', function() {
    var now = new Date();
    var input = $('datum').getValue();
    var dateArray = input.split('/');
    var userMonth = parseInt(dateArray[1])-1;
    var userDate = new Date();
    userDate.setFullYear(dateArray[2], userMonth, dateArray[0], now.getHours(), now.getMinutes(), now.getSeconds(), now.getMilliseconds());

    if (userDate > now)
    {
        alert(now + '\n' + userDate);
    }
});

有没有比较日期而不包含时间的简单方法?


阅读 365

收藏
2020-04-25

共1个答案

一尘不染

我仍在学习JavaScript,而我发现唯一可以比较两个没有时间
setHours

的日期的方法是使用Date对象的方法,并将小时,分钟,秒和毫秒设置为零。然后比较两个日期。

例如,

date1 = new Date()
date2 = new Date(2011,8,20)

date2会将小时,分钟,秒和毫秒设置为零,但date1会将其设置为创建date1的时间。要摆脱date1的小时,分​​钟,秒和毫秒,请执行以下操作:

date1.setHours(0,0,0,0)

现在,您可以仅将两个日期作为“日期”进行比较,而不必担心时间元素。

2020-04-25