首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Moment-Range:需要将一天划分为15分钟的切片

Moment-Range:需要将一天划分为15分钟的切片
EN

Stack Overflow用户
提问于 2016-06-04 03:40:00
回答 4查看 5.2K关注 0票数 6

目前,我只能将一天分成1个小时的区块。但我需要15分钟的步长。

Moment-Range Documentation

这是我现在的代码:

代码语言:javascript
复制
function iterateOverDayByIntervalOfHours(inputJSON){
    var day = getDayFromFromJSON(inputJSON);

    var start = new Date("2016-05-04T00:00:00.000Z");
    var end   = new Date("2016-05-04T23:59:59.999Z");

    var range = moment.range(start, end);
    var slices = {}
    range.by( 'hours', function(moment) {    
        console.log(moment);
        slices["moment"] = moment
        console.log("slices: "+ slices["moment"]);
        var ROTsAccumulatedForInterval =  getAccumulatedROTForTimeIntervall(range);
        var NumberOfFlightsForInterval = getNumberOfFlightsForTimeIntervall(range);
    });
    console.log(slices["moment"]);
}

有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-06-04 05:06:51

这不使用moment,也还没有在你的函数中实现,但这是我尝试获取一个15min-chunks的对象的方法。我希望,这就是你要找的。

代码语言:javascript
复制
var start = new Date("2016-05-04T00:00:00.000Z");
var end = new Date("2016-05-04T23:59:59.999Z");

var slices = {};
var count = 0;
var moment;

while (end >= start) {
  start = new Date(start.getTime() + (15 * 60 * 1000));
  slices[count] = start;
  count++;
}
console.log(slices);

票数 5
EN

Stack Overflow用户

发布于 2017-10-20 15:12:16

下面是使用带有moment-range扩展的moment库的另一种方法:

代码语言:javascript
复制
const day_start = moment().startOf('day').hours(7); // 7 am
const day_end   = moment().startOf('day').hours(22) // 10 pm
const day = moment.range(day_start, day_end)
const time_slots = Array.from(day.by('minutes', {step: 30}))

代码语言:javascript
复制
Array.from(day.by('minutes', {step: 30}))

您可以为hours, days, weeks更改'minutes',并为您想要分块的minutes/hours/days数量更改step

返回值为

代码语言:javascript
复制
[ moment("2017-10-20T07:00:00.000"),
  moment("2017-10-20T07:30:00.000"),
  moment("2017-10-20T08:00:00.000"),
  moment("2017-10-20T08:30:00.000"),
  moment("2017-10-20T09:00:00.000"),
  moment("2017-10-20T09:30:00.000"),
  ...
  moment("2017-10-20T19:30:00.000"),
  moment("2017-10-20T20:00:00.000"),
  moment("2017-10-20T20:30:00.000"),
  moment("2017-10-20T21:00:00.000"),
  moment("2017-10-20T21:30:00.000"),
  moment("2017-10-20T22:00:00.000") ]
票数 13
EN

Stack Overflow用户

发布于 2021-02-11 01:08:10

你也可以使用类似这样的东西。

代码语言:javascript
复制
// Take a starting point
const start = moment('00:00:00', 'HH:mm:ss');

// Take a end point
const end = moment('23:59:59', 'HH:mm:ss');
const timeSeries = [];

while (start.isSameOrBefore(end)) {
  // add 15 minutes to the starting point
  timeSeries.push(start.add(15, 'm').format('HH:mm'));
}

console.log(timeSeries);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37622204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档