目前,我只能将一天分成1个小时的区块。但我需要15分钟的步长。
这是我现在的代码:
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"]);
}有什么想法吗?
发布于 2016-06-04 05:06:51
这不使用moment,也还没有在你的函数中实现,但这是我尝试获取一个15min-chunks的对象的方法。我希望,这就是你要找的。
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);
发布于 2017-10-20 15:12:16
下面是使用带有moment-range扩展的moment库的另一种方法:
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}))在
Array.from(day.by('minutes', {step: 30}))您可以为hours, days, weeks更改'minutes',并为您想要分块的minutes/hours/days数量更改step。
返回值为
[ 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") ]发布于 2021-02-11 01:08:10
你也可以使用类似这样的东西。
// 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);https://stackoverflow.com/questions/37622204
复制相似问题