【问题标题】:javascript: getting the order of magnitude of a time intervaljavascript:获取时间间隔的数量级
【发布时间】:2014-05-22 12:50:48
【问题描述】:

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

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

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

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

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

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

我知道我可以自己通过一系列测试来实现它(除以休息),但我想重新发明(可能有问题的)轮子。

【问题讨论】:

    标签: javascript date datetime time momentjs


    【解决方案1】:

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

    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;
            }
        };
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-02
      • 1970-01-01
      • 2020-08-02
      • 2020-01-31
      • 2010-11-11
      • 1970-01-01
      • 2022-01-17
      相关资源
      最近更新 更多