javascript - 将时间分成 30 分钟的小块

标签 javascript date datetime momentjs

我有两个日期开始和结束

"start" : "Wed Jan 27 2016 21:00:00 GMT-0500",
"end" : "Thu Jan 27 2016 23:30:00 GMT-0500"

我想把这段时间分成如下几 block

"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 来做到这一点?

最佳答案

我们可以像这样把时间分成几 block :

 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)

关于javascript - 将时间分成 30 分钟的小块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35053665/

相关文章:

javascript - 如何使用jquery识别foreach循环的最后一个索引

mysql - 如何在格式为 MM/dd/yy 的日期上使用 MYSQL

javascript - 在没有 npm 的情况下运行 React.js(仅使用本地 React.js 文件或 CDN)

javascript - 如何仅使用电子邮件在 Firebase 中获取 UID

javascript - 表单的服务器端验证

dataframe - 如何从spark(scala)中的不同年、月、日列获取日期

ruby - 如何挑选下个月的 10 号 ruby

java - 获取与本地计算机不同的时区区域设置

python - 使用 xarray 对非标准 CFTimeIndex 日历(360 天,无闰年)重新采样以供 pandas 使用的方法

python - 将日期转换为 pd.datetime