2016-08-01 3 views
0

sat24.comのような衛星写真の「フィルム」を表示するには、画像スライダーのようなものを使用したいと考えています。日付によって可変リンクが設定されたループオーバー画像

ファイルリンクの最後に、5分間隔のタイムスタンプがあります。 http://de.sat24.com/image?type=infrapolair&region=de&timestamp=201608011005

1時間前から10分前まで表示したいと考えています。

実際には動作しません。理由はわかりません。

function init() { 
var timeArr = []; 
var current=0; 
var d = new Date(); 
var akt = d.getDate(); 
var timeArr = []; 
var ONE_HOUR = 60 * 60 * 1000; /* ms */ 
var vor1h = new Date(d.getTime() - ONE_HOUR); 
var fivemin = 5 * 60 * 1000; 
var difference = (akt - vor1h); 
var diffMins = Math.round(((difference % 86400000) % 3600000)/60000); // minutes 
var length = diffMins/5; 
var timestamp; 

for (var i=0;length-2; i++) { 
     timestamp = new Date(vor1h + fivemin*i); 
     timeArr.push(timestamp.getUTCFullYear().toString() + timestamp.getUTCMonth().toString() + timestamp.getUTCDate().toString() + timestamp.getUTCHours().toString() + timestamp.getUTCMinutes().toString()); 
} 

function satimage_loop() { 
    if (current < length-2) { 
     document.getElementById('sat_loop').src= "http://de.sat24.com/image?type=infrapolair&region=de&timestamp=" + timeArr[current]; 
     document.getElementById('test').innerHTML = "http://de.sat24.com/image?type=infrapolair&region=de&timestamp=" + timeArr[current]; 
     current = current + 1; 

    } else { 
     current = 0; 
    } 
    setInterval(satimage_loop(), 1000); 
} 
} 

https://jsfiddle.net/m39eh1nd/2/

+0

'のために実行されている;') 'VARのvor1hは=新しい日付(d.getTime(ここでは不足しています - ONY_HOUR) ' – Arif

+0

正しいですが、それは問題ではありませんでした:/ –

+0

' timestamp.getUTCFullYear()+ timestamp.getUTCMonth()+ timestamp.getUTCDate()+ timestamp.getUTCHours()+ timestamp.getUTCMinutes() 'これは文字列ではありません、彼らは数字です、あなたはあなたは '+'を使ってそれらを連結することができるように、文字列に変換する必要があります。 timestamp.getUTCMonth()。toString()+ timestamp.getUTCDate()。toString()+ timestamp.getUTCHours()。toString()+ timestamp.getUTCMinutes()のようなものに更新されます。 .toString() ' – haxxxton

答えて

1

私は解決策が見つかりました: 次のコードは、私

function init() { 
var month = new Array(12); 
month[0] = "01"; 
month[1] = "02"; 
month[2] = "03"; 
month[3] = "04"; 
month[4] = "05"; 
month[5] = "06"; 
month[6] = "07"; 
month[7] = "08"; 
month[8] = "09"; 
month[9] = "10"; 
month[10] = "11"; 
month[11] = "12"; 

var timeArr = []; 
var current=0; 
var d = new Date(); 

var timeArr = []; 
var vor1h = new Date(d.getTime() - (1000*60*70)); 
var fivemin = 5 * 60 * 1000; 
var length = 14; 
var coeff = 1000 * 60 * 5; 


for (var i=0;i<(length-2); i++) { 
     var timestamp = new Date(Math.round(vor1h.getTime()/coeff) * coeff + parseInt((5 * 60 * 1000)*i)); 
     timeArr.push(addZero(timestamp.getUTCFullYear().toString()) + month[timestamp.getUTCMonth()] + addZero(timestamp.getUTCDate().toString()) + addZero(timestamp.getUTCHours().toString()) + addZero(timestamp.getUTCMinutes().toString())); 
} 
setInterval(function satimage_loop() { 
    if (current < length-2) { 
     document.getElementById('sat_loop').src= "http://de.sat24.com/image?type=visual&region=de&timestamp=" + timeArr[current]; 
     current = current + 1; 
    } else { 
     current = 0; 
    } 
}, 800); 


} 

function addZero(i) { 
if (i < 10) { 
    i = "0" + i; 
} 
return i; 
} 
関連する問題