如果您将所有数据存储在一个数组中,只需使用 JavaScript 的内置Array.filter
方法,并使用 JavaScript 的Date
对象将时间戳转换为毫秒(请注意,它将四舍五入到最接近的千分之一秒 - 只有 3 个小数位)。
var startTime = Date.parse("2012-11-24"),
endTime = Date.parse("2012-11-25") + 86400000; /* Add one day */
filteredData = data.filter(function(d) {
var time = Date.parse(d.time);
return (time >= startTime && time < endTime);
});
您可能需要使用日期范围,我假设您的意思是您想要介于 2012-11-24 和 2012-11-25 之间的数据。
如果您的数据在数据库中,另一种方法是简单地查询数据库以仅显示存在于时间范围内的数据(您可以调用一些 PHP 脚本 - 使用d3.text
- 输出 JSON 并接受两个 GET 参数 startTime 和 endTime )。
d3.text("getNodes.php?startTime=" + startTime + "&endTime=" + endTime, function(json) {
filteredData = JSON.parse(json);
});