我有这样的 JSON 数据
[
"00-00-02":"first one",
"00-00-04":"the second",
"00-00-09":"third",
.
.
]
例如,我如何显示:first one
在指定时间00-00-02
然后在其时间显示下一个00-00-04
?
注意:我应该使用 javascript
我有这样的 JSON 数据
[
"00-00-02":"first one",
"00-00-04":"the second",
"00-00-09":"third",
.
.
]
例如,我如何显示:first one
在指定时间00-00-02
然后在其时间显示下一个00-00-04
?
注意:我应该使用 javascript
如果您使用 UNIX 时间,您可以很容易地进行比较 - 例如
变量数据 = { "1349598808" : "第一个", "1349598845" : "第二个", “1349599400”:“第三” }; 现在变种; 变数秒; 设置间隔(函数(){ 现在 = 新日期(); 秒 = Math.round(now.getTime()/1000); 如果(数据[秒]!=未定义) { 控制台.log(数据[秒]); // 或者 // 原型JS $("mydiv").update(数据[秒]); // 或者 // jQuery $("#mydiv").html(数据[秒]); } },1000);
@Geek Num 88 建议了正确的方法。在这种情况下,通常使用 unix 时间戳。如果你不能改变json,你可以做这样的事情
var data = {
"00-00-02":"first one",
"00-00-04":"the second",
"00-00-09":"third"
}
var timeout;
var start = new Date();
function showIt(){
var now = new Date();
var diff = now - start;
var hh = Math.floor(diff / 600000);
hh = (hh < 10)?"0" + hh : hh;
var mm = Math.floor((diff % 3600000) / 60000);
mm = (mm < 10)?"0" + mm : mm;
var ss = Math.floor((diff % 60000 ) / 1000);
ss = (ss < 10)?"0" + ss : ss;
if(data[hh + "-" + mm + "-" + ss]){
console.log(data[hh + "-" + mm + "-" + ss]);
}
clearTimeout(timeout);
timeout = setTimeout(showIt, 1000);
}
showIt();
您可以尝试使用该setTimeout(fn, time)
函数在计算的间隔后调用“first-one”、“the-second”...。伪代码将类似于
data = ["00-00-02":"first one", "00-00-04":"the second", "00-00-09":"third",...];
//using [key: value] notation
for (i=0; i<data.length; i++) {
eventTime = timeInMilliSeconds(data[i].key);
setTimeout(printMyMessage(data[i].value, eventTime);
}
或者你可以在函数调用中调用setTimeout()
for 。在这种情况下,函数的第二个参数将是和之间的时间差异。data[i]
printMyMessage()
data[i-1]
setTimeout()
data[i]
data[i-1]
你有一个只有json的数组吗?如果您有 json,则以下内容将起作用:
var data = {
"00-00-02":"first one",
"00-00-04":"the second",
"00-00-09":"third"
}
Object.keys(data).forEach(function(key) {
var val = data[key];
console.log("the " + val + " had a time of " + key + " seconds")
});