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]);
}
}
}
これは見事に機能しますが、最初の 7 つの休日の日付には当てはまりません。スクリプトは問題なく情報を取り込みますが (console.log を参照)、休日と通常の比較を実行していないか、日付が一致していることを認識していません。
- これが私のフィドルです: http://jsfiddle.net/chicgeek/3SKYx/48/
- 参照用の API ソースは次のとおりです: http://www.mec.ca/api/v1/stores/1
参考までに、最初の休日の日付は 12 月 3 日から 12 月 9 日ですが、これらは私の休日時間の比較では無視されているようです。12 月 10 日以降はすべて正常に動作しているようです。
誰でも理由がわかりますか?前もって感謝します