2013-05-19 4 views
0

Я делаю вызов JSON для COSM (теперь Xively), поэтому он будет возвращать данные, которые я могу построить с помощью диаграммы Highhart 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) { 

Я хочу даты начала и окончания, чтобы быть динамичным. Мне нужна дата и время окончания. Если теперь было 19 мая 2013 2:30 вечера, он будет отформатирован так:

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

И я хотел бы время начала быть в настоящее время минус 10 дней, это может быть округлены до дня. Таким образом, время начала будет выглядеть так:

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

BTW, я не знаком с JavaScript (просто C).

Кроме того, когда я пытаюсь поместить ссылку jsfiddle в postoffflow post, я получаю сообщение об ошибке «Ссылки на 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

Это довольно пятно, но что-то не так. Когда я делаю предупреждение (end.toISOString()); вместо начала, он возвращает смещение по времени на 10 дней. Поэтому я получаю конечное время, чтобы быть таким же, как время начала, которое будет 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);

Смежные вопросы