js 问题计算时间

新手上路,请多包涵

我的需求是 输入开始时间和结束时间和间隔时间
开始时间和结束时间都是时分,间隔时间是分钟,
然后得到开始到结束中间间隔时间的所有时间段
比如输入03:00 03:02间隔时间1分钟的话 返回03:00 03:01: 03:02

阅读 2k
2 个回答

如果有完整的时间格式,可以参照楼上 @linong 的方法,简单实用
如果只有时间,没有日期,就自己写一个简单的转换和循环

// 时间转数字
function timeToNum(time) {
  return parseInt(time.replace(/^(\d{1,2}):(\d{1,2})$/, ($0,$1,$2) => +$2 + $1*60))
}
// 数字转时间
function numToTime(num) {
  const hour = '0' + parseInt(num / 60);
  const min = '0' + (num % 60);
  return hour.substr(-2) + ':' + min.substr(-2)
}
// 获取间隔时间
function getIntervalTime(start, end, interval) {
  const times = [];
  for (start = timeToNum(start), end = timeToNum(end);start < end; start+=interval) {
    times.push(numToTime(start))
  }
  return [...times, numToTime(end)];
}
getIntervalTime('0:10', '2:30', 20)

这不就是个循环嘛?for循环。 起始是开始时间,终止条件是结束时间,步长是每分钟。

image.png

start = new Date(`2000-01-01 03:00:00`).getTime()
end = new Date(`2000-01-01 03:02:00`).getTime()
for(;start<=end;start+=60000){
    console.log(start, new Date(start).toLocaleString())
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题