Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:获取时间间隔的数量级_Javascript_Date_Datetime_Time_Momentjs - Fatal编程技术网

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

javascript:获取时间间隔的数量级,javascript,date,datetime,time,momentjs,Javascript,Date,Datetime,Time,Momentjs,我正在编写一个需要条形图的应用程序,其在x轴上的装箱与所显示事件之间的平均时间距离的数量级有关 例如,我要显示的事件中的平均时间距离可能是73秒。这意味着相对于所显示的条形图的箱子大小应为一分钟 输入间隔的持续时间(以秒为单位)和推断的数量级的其他示例包括: 3秒:1秒 327秒:一分钟(或可能是5分钟) 5298秒:一小时 7625秒:(可能)两小时 10234秒:一天 4023860秒:一个月 等等。我试图查看这个库,我发现他们实现了一些非常有趣的东西: 请注意,我还对前面已经说明的每个

我正在编写一个需要条形图的应用程序,其在x轴上的装箱与所显示事件之间的平均时间距离的数量级有关

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

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

  • 3秒:1秒
  • 327秒:一分钟(或可能是5分钟)
  • 5298秒:一小时
  • 7625秒:(可能)两小时
  • 10234秒:一天
  • 4023860秒:一个月
等等。我试图查看这个库,我发现他们实现了一些非常有趣的东西:

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


我知道我可以通过一系列测试(带rest的分割)来实现它,但我想重新发明(可能有缺陷的)轮子。

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

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