如何使用Javascript在两个日期之间选择日期

How do I select dates between two dates with Javascript?

本文关键字:日期 两个 之间 选择 何使用 Javascript      更新时间:2023-09-26

我发现了类似的线索,但我似乎无法使他们的解决方案适用于我的特定问题。我目前有一个日历,它将突出显示活动的开始日期。我需要对此进行更改,以突出显示"开始日期"到"结束日期"。注意:我没有写这个代码。写这篇文章的人似乎在这里留下了很多垃圾。请不要评判。

attachTocalendar : function(json, m, y) {
    var arr = new Array();
    if (json == undefined || !json.month || !json.year) {
        return;
    }
    m = json.month;
    y = json.year;
    if (json.events == null) {
        return;
    }
    if (json.total == 0) {
        return;
    }
    var edvs = {};
    var kds = new Array();
    var offset = en4.ynevent.getDateOffset(m, y);
    var tds = $$('.ynevent-cal-day');
    var selected = new Array(), numberOfEvent = new Array();
    for (var i = 0; i < json.total; ++i) {
        var evt = json.events[i];
        var s1 = evt.starttime.toTimestamp();
        var s0 = s1;
        var s2 = evt.endtime.toTimestamp();
        var ds = new Date(s1);
        var de = new Date(s2);
        var id = ds.getDateCellId();
        index = selected.indexOf(id);
        if (index < 0)
        {
            numberOfEvent[selected.length] = 1;
            selected.push(id);
        }
        else
        {
            numberOfEvent[index] = numberOfEvent[index] + 1;
        }
    }
    for (var i = 0; i < selected.length; i++) {
        var td = $(selected[i]);
        if (td != null) {
            if (!(td.hasClass("otherMonth"))){
                td.set('title', numberOfEvent[i] + ' ' + en4.core.language.translate(numberOfEvent[i] > 1 ? 'events' : 'event'));
                td.addClass('selected');
            }
        }
    }
},

我建议您迭代它们,而不是尝试全部选择。这样的东西:

function highlightDates(startDate, endDate) {
    var curDate = startDate;
    var element;
    $('.selected').removeClass('selected'); // reset selection
    while (curDate <= endDate) {
        element = getElementForDate(curDate)
        element.addClass('selected');
        curDate.setDate(curDate.getDate() + 1); // add one day
    }
}
function getElementForDate(someDate) {
    return $('#day-' + someDate.getYear() + "-" + someDate.getMonth() + "-" + someDate.getDay());
}