我正在编写一个脚本来从 API 中提取和解析开放时间。我使用常规时间创建了接下来 7 天的对象,然后与我们的假期时间列表进行比较。
如果在这 7 天中的某一天发生假期,则营业时间将被此数据覆盖。
// get regular hours
var next7days = [];
var storeday = new Date(2012, 12-1, 5);
for (var i = 0; i < 7; i++) {
var dayofweek = (storeday.getDay() + 6) % 7;
next7days[i] = data.hours.regular_hours[dayofweek];
next7days[i].date = storeday;
storeday = new Date(storeday.getTime() + 86400000);
}
// get holiday hours
for (var i = 0; i < data.hours.holiday_hours.length; i++) {
// this spits out all holidays fine
console.log('holiday:');
console.log(data.hours.holiday_hours[i]);
for (var j = 0; j < 7; j++) {
var fixdate = next7days[j].date.getFullYear() + '-' + (next7days[j].date.getMonth() + 1) + '-' + (next7days[j].date.getDate());
if (fixdate == data.hours.holiday_hours[i].date) {
next7days[j].open_time = data.hours.holiday_hours[i].open_time;
next7days[j].close_time = data.hours.holiday_hours[i].close_time;
next7days[j].day_name = data.hours.holiday_hours[i].day_name;
next7days[j].type = data.hours.holiday_hours[i].type;
// the first seven holidays are NOT successful
console.log('successful:');
console.log(next7days[j]);
}
}
}
这非常有效,但不适用于前七个假期日期。该脚本可以很好地提取信息(请参阅 console.log),但它要么没有通过假期常规比较运行,要么无法识别日期匹配。
- 这是我的小提琴:http: //jsfiddle.net/chicgeek/3SKYx/48/
- 以下是供参考的 API 源: http ://www.mec.ca/api/v1/stores/1
作为参考,第一个假期日期是 12 月 3 日 - 12 月 9 日,但我的假期时间比较似乎忽略了这些日期。从 12 月 10 日起,一切似乎都正常。
谁能明白为什么?提前致谢