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

时间:2013-11-21 19:49:07

标签: javascript jquery date if-statement

我有一张互动地图,显示美国不同地区的活动日期。该地图可以很好地解析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());
             }
     }
} 

这条件有什么阻止地图显示明年的数据?

注意:年份输入为2位数。 EX:10/22/13或5/10/13

1 个答案:

答案 0 :(得分:1)

使用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) {
    // ...
}