近似日期 - Javascript / JSON

时间:2014-05-14 21:15:58

标签: javascript json nvd3.js

我正在尝试将一些数据可视化。这是小提琴: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个属性:dateimpressions。我有一个应该可以解决的解决方案,但是日子没有正确聚合,因为即使它们可能接近同一天,毫秒的日期表示也不相同。例如,1398164400000和1398171600000代表同一天,但具有不同的毫秒值。

基本上,如果你检查图表上区域的中间部分,请注意有振荡值,但实际上每对不同的值实际上应该只代表1天的总和。

有没有办法正确合并接近同一天的2毫秒版本的日期?

1 个答案:

答案 0 :(得分:0)

用于生成时间戳的大多数时钟都不包含闰秒,因此您可以通过减去

来隔离日期部分
(t % (24     /* hours per day */
      * 3600 /* seconds per hour */
      * 1000 /* milliseconds per second */ ))

来自时间戳t

即使时间戳确实包含闰秒,该功能仍然会为您提供一个非常好的代理,以便进行比较。对于接近午夜的时间戳,它可能会变得狡猾。

如果您所在的时区远离日间边界,您可能需要将时间戳调整为自本地时区的纪元以来的毫秒数,并忽略DST,这将再次引入午夜左右的一些不准确性。