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