2013-05-19 153 views
0

我正在做一個JSON調用COSM(現Xively),所以它會返回,我可以Highchart的highstock圖表繪製數據。請參閱:jsfiddle.net/T7D5U/2/格式日期字符串爲ISO8601

目前開始和結束日期是硬編碼是這樣的:

 $.getJSON('http://api.xively.com/v2/feeds/4038/datastreams/9.json?start=2013-05-01T00:00:00Z&end=2013-05-19T23:00:00Z&interval=3600?key=dNSiSvXZtR6QBUqbzll4CCgnngGSAKxIQVFSeXBneGpqWT0g', function(data) { 

我想要的開始和結束日期是動態的。我想要結束日期和時間。如果現在是2013年5月19日下午2:30,這將是格式化這樣的:

end=2013-05-19T14:30:00Z

而且我想開始的時間,現在在零下10天,這可以是圓形的一天。所以開始時間看起來是這樣的:

start=2013-05-09T00:00:00Z

順便說一句,我不熟悉JavaScript(只是C)。

此外,當我嘗試在計算器後的放的jsfiddle鏈接,我得到一個錯誤,指出「鏈接jsfiddle.net必須由代碼陪同。」我很困惑,我不知道我應該做什麼。

+0

RE:「鏈接jsfiddle.net必須由碼陪同」 - 他們可能意味着你應該添加代碼的可疑部位進入後,然後鏈接到jsfiddle.net的代碼... – errordeveloper

回答

0

我會做這種方式:

// Set end to current date and time on client 
var end = new Date(); 

// Copy end date and assign to start 
var start = new Date(+end); 

// Set date of start to 10 days ago 
start.setDate(start.getDate() - 10); 

alert(start.toISOString()); 
+0

這是非常漂亮,但有些事是不完全正確的完整版本。當我做一個alert(end.toISOString());而不是開始,它將返回10天的時間偏移量。所以我得到的結束時間與5月10日的開始時間相同。請參閱http://jsfiddle.net/scott216/qF2GD/ –

+0

@ ScottGoldthwaite--這是因爲'end','currentTime'和'start '所有引用相同的Date對象。要複製對象,請使用'start = new Date(+ end);',然後根據需要爲其中一個設置新日期。 – RobG

+0

我得到它的工作。我做到了這一點:

var currentTime = new Date(); var end = currentTime; var start = new Date(currentTime.getTime() - 10 * 24 * 60 * 60 * 1000);