当前位置:网站首页>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-08-08 The fifth group Gu Xiangquan study notes day31-collection-IO stream-File class
- win10怎么安装.net framework 3.5?
- The condition variable condition_variable implements thread synchronization
- SQLserver重新累计问题
- 数据库工具DataGrip V2022.2正式发布——支持导入多个 CSV 文件的选项
- 光刻机随感
- ERROR:Module not found: Error: Can‘t resolve ‘core-js/modules/es.promise.js‘ in ‘address‘
- 新型双功能螯合剂NOTA及其衍生物CAS号:147597-66-8p-SCN-Bn-NOTA
- Deep learning - in the recognition, for example, this paper discusses how to preserve the neural network model
- Lottie进阶和原理分析
猜你喜欢

【面试整理】-- 多线程

三箭资本濒临破产?市场陷入1907年恐慌之中?加密监管不可避免

C专家编程 第9章 再论数组 9.6 C语言的多维数组

01| Data Type

【机器学习】21天挑战赛学习笔记(三)

unshift() :将一个或多个元素添加到数组的开头

2022-08-08 The fifth group Gu Xiangquan study notes day31-collection-IO stream-File class

ReentrantLock源码分析

Cholesterol-PEG-Maleimide,CLS-PEG-MAL,胆固醇-聚乙二醇-马来酰亚胺用于科研实验

马斯克被因狗狗币被索赔2580亿美元 操纵价格牟利?狗狗币已下跌92%
随机推荐
C语言力扣第56题之合并区间。排序+双指针
【CAS:41994-02-9 |Biotinyl Tyramide|】生物素基酪氨酰胺
C专家编程 第9章 再论数组 9.3 为什么C语言把数组形参当做指针
What are the functions and applications of the smart counter control board?
MVVM项目开发(商品管理系统二)
通过kvm创建共享磁盘
【es6】教程 Symbol数据以及迭代器和生成器
【洛谷】P1456 Monkey King
Promoting practice with competitions-Like the 84th biweekly game reflection and the 305th weekly game supplementary questions
2027年加密市场将会发生什么?思维的跨越?长期预测无法脱离形势变化
2022-08-08 The fifth group Gu Xiangquan study notes day31-collection-junit unit test
flatMap() :对每个元素执行映射函数并将结果展平
手把手教你uniapp接入聊天IM即时通讯功能-源码分享
win10上运行emwin
VMware不正常关机
126. 单词接龙 II
2022-08-08 第五小组 顾祥全 学习笔记 day31-集合-Junit单元测试
SwiftUI * Grid
智能计数器控制板的功能及应用有哪些?
Chapter 2数据分析