uniapp写微信小程序实现横向滚动选择日期

今天需要实现预约 选择日期的功能, 要求是从今天开始,展示未来一个月的, 下面这种样子的, 第一次写, 记录一下.

思路:

  1. 获取当天日期
  2. 定义结束的日期, 通过获取到的当天的日期, 月份+1
  3. 创建空数组, 用来存放要展示的日期
  4. 使用循环, 将 当天日期 到 结束日期的 每天的日期都 push 到数组里

代码:

getDateList() {
				// 获取当天日期
				const currentDate = new Date();
				// 定义结束日期和开始日期相同
				const endDate = new Date(currentDate);
				// 将结束日期的月份 + 1, 得到从今天开始一个月后的日期
				endDate.setMonth(endDate.getMonth() + 1);
				// 创建空数组用来存放今天到结束日期之间的日期
				const dates = [];
				// 通过while循环, 满足条件一直走, 条件按不满足就停止
				while (currentDate <= endDate) {
					// 获取今天的星期几, .getDay()得到的是0-6的数字
					const dayOfWeek = currentDate.getDay();
					// 用来存星期几的字符串
					let dateString = '';
					if (currentDate.toLocaleDateString() === new Date().toLocaleDateString()) {
						dateString = "今天";
					} else if (currentDate.toLocaleDateString() === new Date(new Date().getTime() + 24 * 60 * 60 * 1000)
						.toLocaleDateString()) {
						dateString = "明天";
					} else {
						const dayNames = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
						dateString = dayNames[dayOfWeek];
					}
					// 指定格式话的日期格式. 月份和日期都为两位数
					const options = {
						year: 'numeric',
						month: '2-digit',
						day: '2-digit'
					};
					// toLocaleDateString('zh-CN', options) 将日期格式化成想要的样子,
					dates.push({
						day: new Date(currentDate).toLocaleDateString('zh-CN', options),
						week: dateString
					});
					// 把开始日期加一天, 进行循环, 如果加完之后满足循环条件,就push到数组中, 开始日期加到大于结束日期则不满足条件,循环结束
					currentDate.setDate(currentDate.getDate() + 1);
				}

				this.dateList = dates;
				console.log(this.dateList);
			},

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值