日期组件,点击前一天后一天更改日期组件的值

1 篇文章 0 订阅
1 篇文章 0 订阅
prevDate (item) {  // item 日期组件的值所属对象
   //前一天
   let odata = new Date(
     new Date(item.dataDate).getTime() - 24 * 60 * 60 * 1000 // item.dataDate 日期组件的值
   ); //计算当前日期 -1
   item.dataDate = this.convertToDate(odata); //格式化日期并赋值
 },
 nextDate (item) { // item 日期组件的值所属对象
   //后一天
   let odata = new Date(
     new Date(item.dataDate).getTime() + 24 * 60 * 60 * 1000 // item.dataDate 日期组件的值
   ); //计算当前日期 +1
   item.dataDate = this.convertToDate(odata); //格式化日期并赋值
 },
 convertToDate (date1) {
   let date = new Date(date1);
   let y = date.getFullYear();
   let m = date.getMonth() + 1;
   let d = date.getDate();
   m = m < 10 ? '0' + m : m; //月小于10,加0
   d = d < 10 ? '0' + d : d; //day小于10,加0
   return y + '-' + m + '-' + d;
 },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过 `setData` 方法动态设置 picker 组件的 `range` 属性,限定日期选择器中可选的日期范围。具体实现方式如下: 1. 在 `data` 中定义一个日期数组 `dateArr`,用于存储可选的日期日期数组的起始日期可以根据当前日期计算得出,例如: ```javascript data: { dateArr: [], // 存储可选的日期 }, onLoad: function() { const now = new Date(); // 获取当前日期 const dateArr = []; // 存储可选的日期 // 从今天开始,往后推7天,生成可选的日期 for (let i = 0; i < 7; i++) { const date = new Date(now.getTime() + i * 24 * 60 * 60 * 1000); const year = date.getFullYear(); const month = date.getMonth() + 1; const day = date.getDate(); dateArr.push(`${year}-${month}-${day}`); } this.setData({ dateArr: dateArr }); }, ``` 2. 在 `picker` 组件中设置 `mode="date"`,表示选择器为日期选择器,设置 `range="{{dateArr}}"`,表示可选日期为 `dateArr` 数组中的日期。 ```html <view> <picker mode="date" range="{{dateArr}}" bindchange="onDateChange"> <view>选择日期</view> </picker> </view> ``` 3. 在 `onDateChange` 方法中获取用户选择的日期,判断是否符合限制条件,如果不符合,则修改选择器的为可选的第一个日期。 ```javascript onDateChange: function(e) { const selectedIndex = e.detail.value; // 获取用户选择的日期索引 const selectedDate = new Date(this.data.dateArr[selectedIndex]); // 获取用户选择的日期 const now = new Date(); // 获取当前日期 const start = now.getTime(); // 计算7天前的时间戳 const end = now.getTime() + 7 * 24 * 60 * 60 * 1000; // 计算当前时间的时间戳 const selectedTime = selectedDate.getTime(); // 获取用户选择的时间戳 if (selectedTime < start || selectedTime > end) { // 判断是否符合限制条件 wx.showToast({ title: '请选择7天内的日期', icon: 'none' }); const firstIndex = 0; // 可选日期数组中的第一个日期 this.setData({ 'dateIndex': firstIndex // 修改 picker 的为可选的第一个日期 }); } else { this.setData({ 'dateIndex': selectedIndex // 修改 picker 的为用户选择的日期 }); } }, ``` 通过上述方法,可以限制日期选择器中只能选择7天内的日期
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值