【问题标题】:Javascript timestamp grouped by X minutes按 X 分钟分组的 Javascript 时间戳
【发布时间】:2018-10-12 04:14:27
【问题描述】:

我想创建按 X 分钟分组的时间戳列表。

例如,我有最小数据值和最大日期时间戳值。

minDate = 1524548466000; // Tuesday, April 24, 2018 5:41:06 AM
maxDate = 1524577986000; // Tuesday, April 24, 2018 1:53:06 PM

所以我想创建时间戳数组,从 2018 年 4 月 24 日星期二上午 5:40:02018 年 4 月 24 日星期二下午 1:55:00 em> 使用 javascript。

我想要这个输出:

[1524548400000,1524548700000,1524549000000,...1524578100000]

我该怎么做?

【问题讨论】:

  • 使用Date()及其方法setMinutes() & getMinutes()
  • 感谢您的评论,但它们一直在变化,而不是静止的。

标签: javascript arrays timestamp


【解决方案1】:

如果持续时间是 5 分钟,那么您可以如下设置持续时间变量。

var duration = 5 * 60 * 1000;
endTime = endTime - endTime % duration;
startTime = startTime - startTime % duration;

for(var i=startTime;i<endTime;i+=duration){
     arr.push(i);
}

【讨论】:

    【解决方案2】:

    您可以将给定的Unix Time (Epoch Time) 除以所需的分钟、秒和 1000 毫秒的乘积。

    5 minutes * 60 seconds * 1000 milliseconds = 300000
    

    对于在同一插槽中移动的事件,请使用

    Math.floor(time / 300000)
    

    【讨论】:

      【解决方案3】:

      这里是你需要的功能

      function timestampGrouping(minDate, maxDate, x){
          var gap = x * 60000 //60000 = 1minute;
          minDate = Math.floor(minDate/gap)*gap;
          maxDate = Math.ceil(maxDate/gap)*gap;
      
          var arr = [];
      
          while(minDate <= maxDate){
              arr.push(minDate);
              minDate += gap;
          }
          return arr;
      }
      
      var groupingArr = timestampGrouping(1524548466000, 1524577986000, 5);
      console.log(groupingArr);

      Math.floorMath.ceil 是找到您需要的最近的间隙值,然后循环思考该值以获得您想要的所有分钟间隙。

      minDate、maxDate 和 gap 值可以是任何您想要的值。

      希望这是您所需要的。

      【讨论】:

        【解决方案4】:

        这是我的解决方案。我只是数秒并与 maxDate 进行比较。

        var minDate = new Date(1524548466000); // Tuesday, April 24, 2018 5:41:06 AM
        var maxDate = new Date(1524577986000); // Tuesday, April 24, 2018 1:53:06 PM
        var listTimestamp = [];
        while (minDate.getTime() !== maxDate.getTime()) {
          minDate.setSeconds(minDate.getSeconds() + 1);
          listTimestamp.push(minDate.getTime());
        }
        console.log(listTimestamp);

        【讨论】:

          猜你喜欢
          • 2021-12-19
          • 2015-09-14
          • 2021-07-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-07
          • 2013-01-24
          相关资源
          最近更新 更多