使用Javascript和XML显示所有即将出现的项目,而不是过去的项目

使用Javascript和XML显示所有即将出现的项目,而不是过去的项目,javascript,jquery,date,if-statement,Javascript,Jquery,Date,If Statement,我有一张互动地图,上面显示了美国不同地区的活动日期。地图在解析XML文档、获取数据并实际显示数据方面非常有用。然而,我的问题是我无法展示2014年的物品。地图从XML文档中提取数据,并对照当前的月/日/年进行检查。如果数据等于今天或以后,则会显示它。但它没有显示2014年的任何数据 下面是我的条件语句,它将日期相互对照检查——这就是问题所在: if (Number(currentYear) <= findCourseYear || Number(currentYear) <= fin

我有一张互动地图,上面显示了美国不同地区的活动日期。地图在解析XML文档、获取数据并实际显示数据方面非常有用。然而,我的问题是我无法展示2014年的物品。地图从XML文档中提取数据,并对照当前的月/日/年进行检查。如果数据等于今天或以后,则会显示它。但它没有显示2014年的任何数据

下面是我的条件语句,它将日期相互对照检查——这就是问题所在:

if (Number(currentYear) <= findCourseYear || Number(currentYear) <= findCourseYear2){

    if (Number(currentYear) <= findCourseYear && Number(currentMonth) + 1 <= findCourseMonth || Number(currentYear) <= findCourseYear2 && Number(currentMonth) + 1 <= findCourseMonth2){

            if (Number(currentMonth) + 1 == findCourseMonth && Number(currentDay) <= findCourseDay || Number(currentMonth) + 1 < findCourseMonth || Number(currentMonth) + 1 == findCourseMonth2 && Number(currentDay) <= findCourseDay2 || Number(currentMonth) + 1 < findCourseMonth2){

                courseType.push($(this).find('type').text());
                courseName.push($(this).find('name').text());
                courseCity.push($(this).find('city').text());
                courseState.push($(this).find('state').text());
                courseDate.push($(this).find('date').text());
                courseLink.push($(this).find('link').text());
                courseGeo.push($(this).find('geo').text());
             }
     }
} 

if(Number(currentYear)使用JavaScript的
Date()
构造函数。看起来您的检查可以简化为:

var now = Date.now();
var courseDate1 = new Date("20" + findCourseYear, +findCourseMonth - 1, findCourseDay);
var courseDate2 = new Date("20" + findCourseYear2, +findCourseMonth2 - 1, findCourseDay2);
if (courseDate1 >= now || courseDate2 >= now) {
    // ...
}

这就是
currentDate
变量的作用:
var currentDate=new Date()
那么你为什么不把你的课程日期变成我展示的
日期对象呢?这比比较个别的年、月和日要简单得多。你可以用
=
操作符来比较
日期本身。你的条件非常混乱,所以你的错误很难确定。简化条件只需比较
Date
对象就可以了。啊,我明白你的意思了。不幸的是,这不起作用。你能显示
console.log的输出吗([findCourseYear,findCourseMonth,findCourseDay,findCourseYear2,findCourseMonth2,findCourseDay2]。加入(“”);
啊,将日期构造函数更改为
新日期(“20”)+findCourseYear,findCourseMonth,findCourseDay);
编辑:抱歉,您还需要从月份中减去1。因此
新日期(“20”+findCourseYear,findCourseMonth-1,findCourseDay);