Я даты хранятся в timesheet.json
в этом формате:высчитывает разницу даты от даты JSON строки
[{"id":1,"note":"some note about task 1","start":"2015-08-28 02:41:02
+0200","end":"2015-08-28 02:58:58 +0200","sheet":"job"},{"id":2,"note":"some
note about task 2","start":"2015-09-03 03:15:04 +0200","end":"2015-09-03
03:57:34 +0200","sheet":"job"},{"id":3,"note":"some note about task
3","start":"2015-09-03 23:09:50 +0200","end":"2015-09-03 23:58:00
+0200","sheet":"job"},{"id":5,"note":"this is a test task","start":"2015-09-08
19:46:19 +0200","end":"2015-09-08 20:11:22 +0200","sheet":"job"}]
Как я изначально не имеют разницы экспортироваться в JSON Я пытаюсь вычислить его самостоятельно, и добавить он сначала разобрал json, прежде чем отправить его на handlebars.js
для рендеринга шаблонов.
Однако я не могу преобразовать приведенные выше представления строк в Date()
объектов, чтобы иметь возможность делать вычисления по разнице во времени.
Эта конструкция работает в node
кли, и я могу сделать startTime.getTime()
но он не работает в JavaScript:
var startTime = new Date('2015-08-28 02:58:58 +0200');
Вот код, который не работает:
$.getJSON('./timesheet.json', function(data){
context.tasks = data;
for (var prop in context.tasks){
var startTime = new Date(context.tasks[prop].start);
console.log(startTime); // Invalid Date
console.log(context.tasks[prop].start); // 2015-08-28 02:41:02 +0200
var endTime = new Date(context.tasks[prop].end);
var diff = endTime.getTime() - startTime.getTime(); // this doesn't work as endTime and startTime are not Date objects!
cosole.log(diff); // yields NaN
}
var html = template(context);
$('.tasklist').append(html);
});
Вы, вероятно, не должны использовать 'для в' цикла. – SimpleJ
Ваши данные не JSON, и его довольно неясно, какие значения вы передаете конструктору 'Date', но я бы начал отлаживать там – Amit
, это JSON, я просто не размещал здесь весь контент JSON-файла, вместо этого я представил формат времени начала и окончания, поскольку вопрос заключается в том, как сделать с ними расчет – branquito