2013-05-19 154 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);