前言
今天遇到一个需求,是把选择时间段转为分钟数提交上去的;
所以想手动写个数组一一映射,提交的时候遍历下匹配的值提交.
比如 : 00:00
为 0
分钟或者1440
分钟; 00:10
为30
分钟;
具体看下面的
- 2017-8-17 : 加入遍历功能呢
参数:
value : string || Array
type : 'formatTime' || 'number'
返回:
string || Array
效果图
实现思路及功能
思路
- 一天的分数很容易换算出来: 24 * 60 = 14400;
- 字符串拼接要用到求余,还有小于10补0;
功能
- 可以切割任何周期分数(可以整除的数值),比如
5,10,30,60
这种分钟周期 - 默认周期30分钟
你能拿来干啥!
- 写一个时间段选择的组件,当然这里只是单纯拿值
代码实现
// 枚举出分钟
export function enumTime(step=30) {
let temp = []; // 储存结果集
let alLCount = 86400 / 60 / step;
let hourCount = 60 / step;
let hour = 0; // 小时
let minute = 0; // 小时内的分钟
for (let i = 0; i < alLCount; i++) {
if (i === 0 && hour === 0) {
temp.push({
text: "00:00",
value: step * i
});
} else {
if (step * i % 60 === 0) {
minute = 0;
hour = hour + 1;
} else {
minute = step * i % 60;
}
minute = minute < 10 ? "0" + minute : minute;
temp.push({
text:
parseInt(hour, 10) < 10
? "0" + hour + ":" + minute
: hour + ":" + minute,
value: step * i
});
}
}
return temp;
console.log(temp);
}
- 遍历功能
function enumHourTime(value, type = "formatTime") {
const TimeList = ((step = 30