根据两个时间获取中间的时间可选项,步长为15分钟

举报
拿我格子衫来 发表于 2022/03/17 22:52:08 2022/03/17
【摘要】 两个24制的时间, 时间格式为12:00, 分钟只能是 ['00', '15', '30', '45'] 其中之一, 没有判断开始时间早于结束时间   代码写的有点挫,伸手党凑合用吧. /** * 获取两个时间段的所有选项,步长为15分钟 * @param {*} startTime 开始时间 时间格式为 12:00 ...

两个24制的时间, 时间格式为12:00, 分钟只能是 ['00', '15', '30', '45'] 其中之一, 没有判断开始时间早于结束时间

 

代码写的有点挫,伸手党凑合用吧.


  
  1. /**
  2. * 获取两个时间段的所有选项,步长为15分钟
  3. * @param {*} startTime 开始时间 时间格式为 12:00
  4. * @param {*} endTime 结束时间 时间格式为 12:00
  5. * 返回 可选的数组
  6. */
  7. function getOptions(startTime, endTime) {
  8. const timeMap = { '00': 0, '15': 1, '30': 2, '45': 3 }
  9. const numTotimeMap = ['00', '15', '30', '45']
  10. let [startHours, startMin] = startTime.split(':')
  11. let [endHours, endMin] = endTime.split(':')
  12. let len = endHours - startHours
  13. let res = []
  14. for (let i = 0; i < len + 1; i++) {
  15. let num = (i === 0 ? timeMap[startMin] : 0)
  16. let inlen = (i === len) ? timeMap[endMin] + 1 : 4
  17. for (let q = num; q < inlen; q++) {
  18. let hours = parseInt(startHours) + parseInt(i)
  19. let item = `${hours}:${numTotimeMap[q]}`
  20. res.push(item)
  21. }
  22. }
  23. return res
  24. }
  25. var startTime = '11:30'
  26. var endTime = '15:00'
  27. let res = getOptions(startTime, endTime)
  28. console.log(res)
  29. // [
  30. // '11:30', '11:45', '12:00',
  31. // '12:15', '12:30', '12:45',
  32. // '13:00', '13:15', '13:30',
  33. // '13:45', '14:00', '14:15',
  34. // '14:30', '14:45', '15:00'
  35. // ]

文章来源: fizzz.blog.csdn.net,作者:拿我格子衫来,版权归原作者所有,如需转载,请联系作者。

原文链接:fizzz.blog.csdn.net/article/details/107514567

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。