将时间分成 30 分钟块
break times into 30 minute chunks
我有两个日期开始和结束
"start" : "Wed Jan 27 2016 21:00:00 GMT-0500",
"end" : "Thu Jan 27 2016 23:30:00 GMT-0500"
我想把这次分成几个块,比如
"start" : "Wed Jan 27 2016 21:00:00 GMT-0500",
"end" : "Thu Jan 27 2016 21:30:00 GMT-0500"
----------------------------------------------
"start" : "Wed Jan 27 2016 21:30:00 GMT-0500",
"end" : "Thu Jan 27 2016 22:00:00 GMT-0500"
----------------------------------------------
"start" : "Wed Jan 27 2016 22:00:00 GMT-0500",
"end" : "Thu Jan 27 2016 22:30:00 GMT-0500"
----------------------------------------------
"start" : "Wed Jan 27 2016 22:30:00 GMT-0500",
"end" : "Thu Jan 27 2016 23:00:00 GMT-0500"
----------------------------------------------
"start" : "Wed Jan 27 2016 23:00:00 GMT-0500",
"end" : "Thu Jan 27 2016 23:30:00 GMT-0500"
有没有办法使用 moment.js 或 javascript 来做到这一点?
我们可以像这样将时间分解为块:
var time = {
"start": "Wed Jan 27 2016 21:00:00 GMT-0500",
"end": "Thu Jan 27 2016 23:30:00 GMT-0500"
};
var startTime = new Date(time.start).getTime();
var endTime = new Date(time.end).getTime();
var diff = endTime - startTime;
var chunks = [];
var hold = startTime;
var threshold = (60 * 30 * 1000); //30minutes
for (var i = (startTime + threshold); i <= endTime; i += (threshold)) {
var newEndTime = new Date(i);
chunks.push({
start: new Date(hold),
end: newEndTime
});
hold = newEndTime;
}
console.log(chunks)
使用时刻时区(假设您添加了时区),这会将您的间隔写入控制台.log;
var start = moment.tz('2016-01-27 21:00', 'America/New_York');
var end = moment.tz('2016-01-27 23:30', 'America/New_York');
while(start < end) {
console.log('Start: ' + start.format());
start = start.add(30, 'minutes')
console.log('End: ' + start.format());
console.log();
}
Start: 2016-01-27T21:00:00-05:00
End: 2016-01-27T21:30:00-05:00
Start: 2016-01-27T21:30:00-05:00
End: 2016-01-27T22:00:00-05:00
Start: 2016-01-27T22:00:00-05:00
End: 2016-01-27T22:30:00-05:00
Start: 2016-01-27T22:30:00-05:00
End: 2016-01-27T23:00:00-05:00
Start: 2016-01-27T23:00:00-05:00
End: 2016-01-27T23:30:00-05:00
var startTime = new Date(start).getTime();
var endTime = new Date(end).getTime();
var duration = 1000 * 60 * 30;
var times = [] ;
var arr_len = (startTime - endTime)/duration;
for(i=0; i< arr_len; i++){
times.push(new Date(startTime + duration));
}
然后你得到这些块
相关文章:
- 当转换为Python日期时间时,Node的时间戳落后3分钟
- 引导时间选择器在增加或减少小时和分钟的同时获取 NaN
- Moment.js unix时间戳,以分钟为单位显示以前的时间
- 计算JavaScript中的时间差异(天+小时+分钟+秒)
- 使用 javascript 将指定的分钟数添加到时间
- 用javascript将时间格式化为小时和分钟
- 如何设置此javascript以正确显示花费的总时间,显示超出正常时钟的分钟数
- 如何从javascript或jquery中的时间字符串中获取分钟数
- Javascript模糊时间(例如'10分钟前');s精确到几秒钟
- 从值为零angularjs的时间中删除分钟部分
- Javascript:如何以毫秒为单位将时间显示为天:小时:分钟
- 在 Google 图表 y 轴上将时间格式设置为小时:分钟
- 基于时间的 javascript,创建一个大约 30 分钟的空白响应
- 如何像这样显示时间,例如:1秒前,1分钟前,1小时前,1个月前
- 通过Javascript错误将考试时间设置为30分钟
- Javascript/jQuery使用正则表达式搜索“分钟:秒”时间
- 从当前日期和时间 JavaScript 中减去 5 分钟
- 在 JavaScript 中将 Unix 时间转换为“几分钟前”
- 舍入时间间隔最长为 15 分钟步长
- 节点 - MySQL 查询,需要几分钟时间,在几分钟后重复自己,然后完成原始查询