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

标签 javascript date datetime time momentjs

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

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

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

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

等等。我试图查看 moment.js图书馆和我发现他们实现了一些非常有趣的东西:fromNow method .

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

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

最佳答案

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

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

关于javascript:获取时间间隔的数量级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23807336/

相关文章:

mysql - IBM Cognos _days_between 函数不起作用

mysql - 从特定日期选择唯一记录,不包括以前日期的重复记录

java - SimpleDateFormat 是否有格式字符串来获取毫秒日期时间值而不是人类可读的形式?

javascript - Express - 使用curl 添加 JSON 有效负载导致解析错误

javascript - 使用 HTML5 和 JavaScript 在 SQLite 中插入和检索 BLOB 图像

php future 日期显示 1970-04-01 而不是开始日期后 3 个月

c# - 检查 DateTime 是否大于另一个 DateTime 的正确方法

javascript - JSON 对象返回但无法通过 $.ajax() 访问

javascript - 从数组/对象/集合中删除匿名 JavaScript 函数

java - JSR 310::System.currentTimeMillis() 与 Instant.toEpochMilli()::TimeZone