我有一个位于服务器上的文本文件,其中包含具有目标时间的事件列表.它看起来像下面这样:
2012/02/11-10:00:00 EventStart Red 2012/02/11-10:10:00 EventStop Green ...
我需要做的是以某种方式读取文本文件并根据当前时间选择下一个即将发生的事件,并将该事件的每个元素分配给变量.例如,如果时间当前是2012.02.11-10:08:00,则javascript变量time =’2012/02 / 11-10:10:00′; title =’EventStop’; color =’Green’;将被创建.
我能够用以下内容读取文本文件:
jQuery.get('schedule.txt',function(data){
alert(data);
});
只是不知道从那里去哪里,或者如果这是最好的开始方式.我确实可以控制文本文件的格式,因此修改它是一个选项.
解决方法
您说您可以修改文件的内容,因此我建议将其转换为JSON(并分隔日期/时间).
[{"date": "2012/02/11","time": "10:00:00","title": "EventStart","color": "Red"},{"date": "2012/02/11","time": "10:10:00","title": "EventStop","color": "Green"}]
然后你可以使用getJSON来获取/解析它.
jQuery.getJSON('schedule.txt',function(data){
// data is an array of objects
$.each(data,function(){
console.log(this.title); // log each title
});
});
从这里,您可以阅读时间并找出哪一个是最新的.像这样的东西应该工作:
if(Date.Now() <= Date.parse(this.date+' '+this.time))
所以,把它们放在一起:
jQuery.getJSON('schedule.txt',function(data){
var matchedSchedule = {};
// data is an array of objects
$.each(data,function(){
if(Date.Now() <= Date.parse(this.date+' '+this.time)){
matchedSchedule = this; // If time matches,set a variable to this object
return false; // break the loop
}
});
console.log(matchedSchedule.title);
// to set a "global" variable,add it to `window`
window.eventTitle = matchedSchedule.title;
});