0

我正在编写一个脚本来从 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),但它要么没有通过假期常规比较运行,要么无法识别日期匹配。

作为参考,第一个假期日期是 12 月 3 日 - 12 月 9 日,但我的假期时间比较似乎忽略了这些日期。从 12 月 10 日起,一切似乎都正常。

谁能明白为什么?提前致谢

4

1 回答 1

5

前几个日期不起作用,因为它们缺少假期日期的前导 0。然后以两位数显示,因为日期相等有效。

于 2012-11-23T21:10:49.267 回答