当前位置:网站首页>uniapp uview uselect 时间选择 日期生成代码
uniapp uview uselect 时间选择 日期生成代码
2022-08-09 03:13:00 【阿里巴巴首席技术官】
需求, 时间需要显示当前日期往后 小时显示今天的之后的小时 , 分钟显示 00 / 15 / 30 /45
最终效果如下
代码
/**
* 获取未来天数列表
*
* @param dayCount 获取未来几天?
* @returns {*[]} 未来天数列表
*/
function getFutureDays(dayCount) {
if (dayCount <= 1) {
throw new Error("getFutureDays参数 dayCount最少指定一天");
}
// 一天的时间
let oneDayTime = 24 * 60 * 60 * 1000;
let list = []
for (let i = 0; i < dayCount; i++) {
let lastDay = new Date(new Date().getTime() + i * oneDayTime);
let year = lastDay.getFullYear();
let month = lastDay.getMonth() + 1;
let day = lastDay.getDate()
if (month < 10) month = '0' + month;
if (day < 10) day = '0' + day;
let labelTime = month + '月' + day + '日';
let valueTime = year + '-' + month + '-' + day;
let label = {label: labelTime, value: valueTime}
list.push(label)
}
list[0].label += " (今天)";
if (dayCount > 1) {
list[1].label += " (明天)";
}
if (dayCount > 2) {
list[2].label += " (后天)";
}
return list;
}
/**
* 获取今天的小时列表
*/
function getTodayHourList() {
// 当前小时(24制)
let currentHour = new Date().getHours();
// 剩余小时个数
let hourCount = 24 - currentHour;
let list = [];
for (let i = 1; i < hourCount; i++) {
let label = {label: currentHour+i + '点', value: currentHour+i}
if (i < 10) {
label.value = '0' + label.value
}
list.push(label);
}
return list;
}
/**
* 获取一天的小时列表
* @returns {*[]} 一天的小时列表
*/
function getHourList(){
let list = [];
for (let i = 0; i < 24; i++) {
let label = {label: i + '点', value: i}
if (i < 10) {
label.value = '0' + label.value
}
list.push(label);
}
return list;
}
/**
* 获取分钟列表
*/
function getMinutesList() {
return [
{label: '00分', value: 0},
{label: '15分', value: 15},
{label: '30分', value: 30},
{label: '45分', value: 45}
]
}
/**
* 获取下单需要的时间列表
*/
export function getCreateOrderTimeList(){
// 获取的天数
let dayCount = 15;
// 1.获取天数
let dayList = getFutureDays(dayCount);
// 3.获取分钟
let minutes = getMinutesList();
// 组装数据
for (let i = 0; i < dayList.length; i++) {
dayList[i].children = i === 0 ? getTodayHourList() : getHourList();
let tempHourList = dayList[i].children;
for (let j = 0; j < tempHourList.length; j++) {
tempHourList[j].children = minutes;
}
}
return dayList;
}
使用方式 直接调用此方法
getCreateOrderTimeList();
返回值放入u-select上的list属性上即可!
边栏推荐
猜你喜欢
随机推荐
2022微服务面试题 最新50道题(含答案解析)
net core 读取sqlserver所有表转为json
佛性问题排查小结
Doris从理论详解到千万级数据量场景使用
深度学习:优化器
DSPE-PEG-OH,DSPE-PEG-Hydroxyl,磷脂-聚乙二醇-羟基仅供科研实验使用
JSON beautification plugin for Chrome
整数溢出机制 C
C专家编程 第9章 再论数组 9.2 为什么会发生混淆
Chrome的JSON美化插件
CI/CD:持续集成/持续部署(难舍难分)
三箭资本濒临破产?市场陷入1907年恐慌之中?加密监管不可避免
C专家编程 第9章 再论数组 9.5 数组和指针可交换性的总结
Exchange VLAN experiment
JS 运行机制最全面的一次梳理
flatMap() :对每个元素执行映射函数并将结果展平
SQLserver重新累计问题
hcip MPLS 实验
Cholesterol-PEG-Maleimide,CLS-PEG-MAL,胆固醇-聚乙二醇-马来酰亚胺用于科研实验
交换VLAN实验