我正在使用 JavaScript、JSON 和 date.js,我正在尝试解析 JSON 文件以仅显示当前发生的类列表。我已经能够解析 JSON 文件,因此它只显示当天发生的课程。不过,我无法正确解析时间。
我的 JSON 文件的一部分:
[
{
"day": "Monday",
"activities": [
{
"activity": "Freestyle ",
"times": [
{"start":"6:30 AM","end":"7:15 AM"},
{"start":"7:15 AM","end":"8:15 AM"},
{"start":"5:15 PM","end":"6:00 PM"}
]
},
{
"activity": "Open Skate ",
"times": [
{"start":"11:30 AM","end":"5:00 PM"},
{"start":"7:30 PM","end":"9:30 PM"}
]
},
{
"activity": "Holiday Snowbunnies 1 ",
"times": [
{"start":"6:00 PM","end":"6:30 PM"}
]
}
]
},
{
"day": "Tuesday",
"activities": [
{
"activity": "Freestyle ",
"times": [
{"start":"5:45 AM","end":"6:30 AM"},
{"start":"6:30 AM","end":"7:15 AM"},
{"start":"6:45 PM","end":"7:30 PM"}
]
},
{
"activity": "Open Skate ",
"times": [
{"start":"10:00 AM","end":"5:00 PM"},
{"start":"7:30 PM","end":"9:30 PM"}
]
},
{
"activity": "Patch ",
"times": [
{"start":"10:00 AM","end":"10:30 AM"}
]
}
]
}
]
我的 JavaScript - 具有适当的功能:
function updateSchedule(responseText){
var activitiesDiv = document.getElementById("activities");
var skActivities = JSON.parse(responseText);
var toDay = Date.today().getDayName();
var now = new Date();
var curHour = now.toTimeString('hh:mm tt');
for(var i=0;i<skActivities.length;i++){
var activityDay = skActivities[i];
if(activityDay.day == toDay)
{
var toDaysActivities = activityDay.activities;
for(var j=0;j<toDaysActivities.length;j++){
var toDayActivity = toDaysActivities[j];
var curTimeDayActivities = toDayActivity.times;
for(var k=0;k<curTimeDayActivities.length;k++){
var curTimeDayStartActivity = curTimeDayActivities[k].start;
if(curTimeDayStartActivity >= curHour){
var div = document.createElement("div");
div.innerHTML = toDayActivity.activity + ": " + curTimeDayActivities[k].start;
activitiesDiv.appendChild(div);
}
}
}
}
continue;
}
}
目前,该函数正在返回一周中当天发生的所有课程及其时间。注意:“11:30 AM Open Skate”除外。似乎返回的唯一值是 9 及以下的值。
同样,我的意图是让用户访问该站点并查看当前正在上课的课程。
注意:如果我们不需要使用 date.js 的解决方案,我可以接受。只是以为我会合并它。
任何建议将不胜感激。