2016-08-01 59 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() - ONE_HOUR)' – Arif

+0

正確,但那不是問題:/ –

+0

'timestamp.getUTCFullYear()+ timestamp.getUTCMonth()+ timestamp.getUTCDate()+ timestamp.getUTCHours()+ timestamp.getUTCMinutes()'這些不是字符串,他們是數字,你正在添加在這一刻,你需要將它們變成字符串,以便你可以使用'+'連接它們。更新到像'timestamp.getUTCFullYear()。toString()+ 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; 
}