Ter*_*tos -3 javascript time date range
我需要计算两个小时 JavaScript 之间的范围,例如:
var calculeHor = 30; // or 20, or 15, or 10...
var horIni = "8:30";
var horEnd = "13:00";
Run Code Online (Sandbox Code Playgroud)
结果是:
var range = [
{08:30 - 09:00},
{09:00 - 09:30},
{09:30 - 10:00},
{10:00 - 10:30},
{10:30 - 11:00},
{11:00 - 11:30},
{11:30 - 12:00},
{12:00 - 12:30},
{12:30 - 13:00}
];
Run Code Online (Sandbox Code Playgroud)
尝试一下:
function time(start, end, interval) {
let s = start.split(':').map(e => +e);
let e = end.split(':').map(e => +e);
let res = [];
let h_prev = s[0];
let m_prev = s[1];
while (h_prev < e[0] || m_prev < e[1]) {
s[1] += interval;
if (s[1] > 59) {
s[0] += 1;
s[1] %= 60;
}
if (s[0] < e[0] || s[1] <= e[1])
res.push(h_prev + ':' + (m_prev < 10 ? '0' + m_prev : m_prev) + " - " + s[0] + ':' + (s[1] < 10 ? '0' + s[1] : s[1]));
h_prev = s[0];
m_prev = s[1];
if (h_prev == e[0] && e[1] - m_prev < interval) break;
}
return res;
}
console.log(time('8:30', '13:00', 30));
console.log(time('23:00', '23:30', 30));
console.log(time('23:00', '23:31', 30));
Run Code Online (Sandbox Code Playgroud)