私はこのような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を使用してそれを行う必要があります
@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();
UNIX時間を使用している場合は、比較をかなり簡単に行うことができます。たとえば、
var data = { "1349598808": "最初のもの"、 "1349598845": "2番目"、 "1349599400":"サード" }; var now; var秒; setInterval(function(){ now = new Date(); 秒=Math.round(now.getTime()/ 1000); if(data [seconds]!= undefined) {{ console.log(data [seconds]); // また // PrototypeJS $( "mydiv")。update(data [seconds]); // また // jquery $( "#mydiv")。html(data [seconds]); } }、1000); 。
ビデオ字幕はすでに重要であり、それらを再実装する必要はないことに注意する必要があります。
track
HTML5、http ://www.html5rocks.com/en/tutorials/track/basics/から要素を取得するか、より互換性が必要な場合は、popcorn.jsを使用できます:http : //popcornjs.org/。
それをしたくない場合は、window.setTimeoutを使用してそれぞれを表示します。
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);
}
または、関数呼び出しでforsetTimeout()
を呼び出すこともできます。その場合の関数の2番目の引数は、との間の時間差です。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")
});