如何处理JSON日期在underscore.js
我怎么能基本上在查询日期underscore.js?我知道我不能做一个“之间”的条款,但看到下面的代码作为例子。我的目标是根据用户指定的日期范围将JSON数据加载到图表中。如何处理JSON日期在underscore.js
var testdata=[{"date": "1/8/2014", "y": 50, "z": 466, "a": 35},
{"date": "1/9/2014", "y": 325, "z": 201, "a": 85},
{"date": "1/10/2014", "y": 250, "z": null, "a": 40},
{"date": "1/11/2014", "y": 125, "z": 500, "a": 60},
{"date": "1/12/2014", "y": 50, "z": 466, "a": 35},
{"date": "1/13/2014", "y": 325, "z": 201, "a": 85}
];
daterange = _.select(testdata, function(getdates){ return getdates between '1/9/2014' and '1/12/2014';});
console.log(daterange);
更新:我有一些麻烦让我的日期回调取代“startDate”和“endDate”从粗糙的兔子的例子。有什么建议么?
var cb = function(start, end) {
$('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
alert("Callback has fired: [" + start.format('MMMM D, YYYY') + " to " + end.format('MMMM D, YYYY') + "]");
var testdata=[
{"date": "1/2/2014", "y": 250, "z": null, "a": 40},
{"date": "1/3/2014", "y": 125, "z": 500, "a": 60},
{"date": "1/4/2014", "y": 50, "z": 466, "a": 35},
{"date": "1/5/2014", "y": 325, "z": 201, "a": 85},
{"date": "1/6/2014", "y": 250, "z": null, "a": 40},
{"date": "1/7/2014", "y": 125, "z": 500, "a": 60},
{"date": "1/8/2014", "y": 50, "z": 466, "a": 35},
{"date": "1/9/2014", "y": 325, "z": 201, "a": 85},
{"date": "1/10/2014", "y": 250, "z": null, "a": 40},
{"date": "1/11/2014", "y": 125, "z": 500, "a": 60},
{"date": "1/12/2014", "y": 50, "z": 466, "a": 35}
];
_.each(testdata, function(data){
var dateParts = data.date.split('/')
data.date = new Date(dateParts[2], dateParts[0] - 1, dateParts[1])
});
var startDate = new Date(2014,0,9) ;
var endDate = new Date(2014,0,12) ;
var requiredData = _.filter(testdata, function(data){
return data.date >= startDate && data.date <= endDate;
});
这些日期并不容易所以首先全部转换为JavaScript日期的工作:
_.each(testdata, function(data){
var dateParts = data.date.split('/')
data.date = new Date(dateParts[2], dateParts[0] - 1, dateParts[1])
});
然后提取你想使用_.filter数据:
var startDate = new Date(2014,0,9) ;
var endDate = new Date(2014,0,12) ;
var requiredData = _.filter(testdata, function(data){
return data.date >= startDate && data.date <= endDate;
});
谢谢 - 你会推荐我从我的JSON文件开始JavaScript日期吗?此外 - 我使用Bootstrap Datepicker,我不确定如何将它与JavaScript格式的日期完全整合(请参阅原始文章中的编辑)。 – davids12
你可能还想考虑使用像date.js这样的库来获取与日期相关的东西。
有点风马牛不相及,但仍然具有现实意义:我创造了大约按摩与underscorejs根据最新数据结合人力车图表AA截屏,检查出来,如果你想:http://tagtree.tv/d3-with-rickshaw-and-angular
会推荐优秀图书馆momentjs
http://momentjs.com/docs/#/parsing/string/
console.log(moment("1/8/2014").format());
这是一个LOUS如果你希望进行相对比较,你可以用这种方式来表示一个日期。 –