javascript - 如何使用 Vue.js 根据当前日期/时间设置时间间隔
问题描述
假设当前日期/时间是 03/29/2020 02:10 PM。然后我想显示 7 组时间,间隔为 15 分钟,分别是 01:30 PM、01:45 PM、02:00 PM、02:15 PM、02:30 PM、02:45 PM 和 03:00 PM .
Current Date/Time = 03/29/2020 02:10 PM
<div :key="timeList">
<button>{{timeList}}</button>
</div>
我如何将 timeList 中的七组时间显示为 currentTime 的 15 分钟间隔
- 01:30 PM
- 下午 1 点 45 分
- 下午 02:00
- 下午 2:15
- 下午 2:30
- 下午 2:45
- 下午 3:00
解决方案
如果当前时间是 02:10,则下一个 15 分钟块从 02:15 开始。
无论如何,您可以使用内置的格式化函数来获得适当的格式,例如
/*
** @param {Date} date: date to use for time blocks
** @param {number} mins: length of time block in minutes
** should be an even divisor of 60, e.g. 5, 10, 12, 15
** @param {number} num: number of values to return
** @returns {Array} array of strings formatted as hh:mm ap
*/
function getTimes(date, mins, num) {
// Copy date so don't affect original
let d = new Date(date);
// Get start of next block
let dMins = d.getMinutes();
let nextMin = Math.ceil(dMins/mins) * mins;
// If in first minute of first block, add 1
if (!(dMins%mins)) nextMin += mins;
d.setMinutes(nextMin, 0, 0);
let result = [];
let opts = {hour:'2-digit', minute:'2-digit', hour12:true};
while (num--) {
result.push(d.toLocaleString('en', opts));
d.setMinutes(d.getMinutes() + mins);
}
return result;
}
console.log(getTimes(new Date(), 15, 7));
推荐阅读
- angular - 当您在 Angular 中有带有空路径的延迟加载模块时,如何重定向到仪表板?
- python-3.x - 将图像上传到云端,然后将相应的链接粘贴到相应的数据框
- python - 如何处理 Flask 中的文件路径
- python - 返回了一个模板响应,没有在视图或响应上设置“template_name”属性(drf-yasg2)
- javascript - react-table:根据行道具值更改行的背景颜色
- flutter - 如何从未来获取字符串
在颤振? - haskell - 为什么 GHC 不能使用实例约束来解决这种统一?
- ios - 进度条 SetProgres
- r - 考虑到控制变量,匹配 R 中的多个数据
- python - PatsyError:错误评估因素:NameError:由于列名中的特殊字符而未定义名称''回归