我的地理位置移动应用程序基于一些类似硬编码的条件运行...
function checkTime(hms){
// for example a day (day 0 == Sun) between 06:00 and 23:45
if( (today === 1 || today === 2 || today === 3 || today === 4) && hms > "09:00:00" && hms < "15:40:00") {
ajax_post(position.coords.latitude, position.coords.longitude, position.coords.accuracy, position.coords.speed, position.timestamp);
}
else if( today === 5 && hms > "13:00:00" && hms < "13:40:00") {
ajax_post(position.coords.latitude, position.coords.longitude, position.coords.accuracy, position.coords.speed, position.timestamp);
}
else {
document.getElementById("status").innerHTML = "Data not scheduled to be posted to the server yet";
}
}
我现在已经制作了一张表格来获取时间。时间存储在html5&#39; localStorage
中的对象中,如此......
var timeDb = {
mon:[],
tue:[{start:"21:00",end:"23:00"},{start:"23:00",end:"22:30"}],
wed:[],
thu:[],
fri:[],
sat:[{start:"11:00",end:"22:15"}],
sun:[]
}
我的问题是,由于以上是动态的,如何在用户更新timeDb
时动态创建上述条件?我只使用JavaScript。
感谢。
答案 0 :(得分:1)
您可以使用数组进行日期字符串转换,并使用此日期名称访问timeDB
,并检查一个项目是否在预定时间内。
function checkTime(today, hms) {
var numberToDay = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'];
if (timeDb[numberToDay[today]].some(t => t.start >= hms && hms <= t.end)) {
//ajax_post
return true;
} else {
// document.getElementById("status").innerHTML = "Data not scheduled to be posted to the server yet";
return false;
}
}
var timeDb = { mon: [], tue: [{ start: "21:00", end: "23:00" }, { start: "23:00", end: "22:30" }], wed: [], thu: [], fri: [], sat: [{ start: "11:00", end: "22:15" }], sun: [] };
console.log(checkTime(0, '00:00')); // false
console.log(checkTime(1, '22:00')); // true
&#13;