我正在尝试将一些数据可视化。这是小提琴:http://jsfiddle.net/hohenheim/6R7mu/10/
对于这个可视化,我启动了一小部分我正在尝试可视化的JSON数据,data2
看起来像
data2 = [
{
"startDate":1396263600.0,
"adId":2483231759355,
"endDate":1401101940.0,
"impressions":754831
},
{
"startDate":1393851600.0,
"adId":2750329551133,
"endDate":1404212340.0,
"impressions":3947368
}
];
请注意数据中有一个日期范围。我的目标是将展示次数统一分配到该日期范围内的所有日期,并汇总所有广告每天的所有展示次数。 IE最终结果只有2个属性:date
和impressions
。我有一个应该可以解决的解决方案,但是日子没有正确聚合,因为即使它们可能接近同一天,毫秒的日期表示也不相同。例如,1398164400000和1398171600000代表同一天,但具有不同的毫秒值。
基本上,如果你检查图表上区域的中间部分,请注意有振荡值,但实际上每对不同的值实际上应该只代表1天的总和。
有没有办法正确合并接近同一天的2毫秒版本的日期?
答案 0 :(得分:0)
用于生成时间戳的大多数时钟都不包含闰秒,因此您可以通过减去
来隔离日期部分(t % (24 /* hours per day */
* 3600 /* seconds per hour */
* 1000 /* milliseconds per second */ ))
来自时间戳t
。
即使时间戳确实包含闰秒,该功能仍然会为您提供一个非常好的代理,以便进行比较。对于接近午夜的时间戳,它可能会变得狡猾。
如果您所在的时区远离日间边界,您可能需要将时间戳调整为自本地时区的纪元以来的毫秒数,并忽略DST,这将再次引入午夜左右的一些不准确性。