javascript:获得时间间隔的数量级

时间:2014-05-22 12:50:48

标签: javascript date datetime time momentjs

我正在编写一个需要条形图的应用程序,其条形图在 x 轴中,相对于显示的事件之间的平均时间距离的数量级。 / p>

例如,我想要显示的事件中的平均时间距离可能是73秒。这意味着箱子相对于显示的栏的大小应该是一分钟。

输入间隔和推断的数量级的持续时间(秒)的其他示例是:

  • 3秒:一秒
  • 327秒:一分钟(或可能是5分钟)
  • 5298秒:一小时
  • 7625秒:(可能)两小时
  • 10234秒:一天
  • 4023860秒:一个月

等等。我试着查看moment.js库,发现他们实现了一些非常有趣的东西:fromNow method

请注意,我也对之前说明的每个数量级的秒数感兴趣。

我知道我可以通过一系列测试(休息分区)自己实现它,但我想重新发明(可能是马车)车轮。

1 个答案:

答案 0 :(得分:0)

最后,我在以下简单函数中实现了一个解决方案:

function compute_magnitude_interval(average_interval) {
    var minute = 60;
    var hour = minute*60;
    var day = hour*24;

    var possible_intervals = [ 
        1, 2, 5, 10, 20, 30,
        minute, minute*2, minute*5, minute*10, minute*20, minute*30,
        hour, hour*2, hour*5, hour*10, hour*12,
        day, day*2, day*5, day*10, day*15
    ].reverse();

    for(var i in possible_intervals){
        var seconds = possible_intervals[i];
        if (Math.floor(average_interval/seconds) > 0) {
            return seconds;
        }
    };
}