picker组件选择月份 end参数无效在uni-app数据格式为按照文档要求YYYY-MM-DD传入

picker组件选择月份 end参数无效在uni-app数据格式为按照文档要求YYYY-MM-DD传入

开发环境 版本号 项目创建方式
Windows 10.0.22000 HBuilderX
## 示例代码:

```html
<picker  
mode="date"  
fields="month"  
[@change](/user/change)="bindDateChange"  
end="selectEndDate"
>
    <text class="uni-calendar__header-text">
        {{ (nowDate.year || '') + ' / ' + (nowDate.month || '') }}
    </text>
</picker>  

data() {
return {
selectEndDate: new Date().toLocaleDateString().replace(/\//g, '-')
}
},

操作步骤:

选择月份 传入end参数后 限制不住选择

预期结果:

end参数生效

实际结果:

end参数传与不传没有任何区别

bug描述:

picker选择月份 传入end参数限制不住选择
输出end为 ‘2025-6-4’ 文档中end介绍为表示有效日期范围的结束,字符串格式为"YYYY-MM-DD"
符合要求


更多关于picker组件选择月份 end参数无效在uni-app数据格式为按照文档要求YYYY-MM-DD传入的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

搜索了下 五年前就有这个bug?太逆天了

更多关于picker组件选择月份 end参数无效在uni-app数据格式为按照文档要求YYYY-MM-DD传入的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个应该是文档示例的代码写的有问题,hello uniapp中的代码为当前时间前后十年。文档已更新。

限制月份这里,我使用hello uniapp测试了一下,是正常运行的,im里面私聊你了,有测试录屏

根据你的描述,picker组件的end参数在month模式下确实存在限制失效的问题。这是一个已知的uni-app组件限制。

问题分析:

  1. 当前picker组件的month模式(fields=“month”)对end/start参数的支持不完善
  2. 即使按照文档要求传入YYYY-MM-DD格式,月份选择范围限制也不会生效

解决方案:

  1. 临时方案:使用完整的date模式(fields=“date”)来实现月份选择限制
  2. 或者手动在change事件中校验选择的月份是否超出范围

示例代码修改建议:

methods: {
  bindDateChange(e) {
    const selected = new Date(e.detail.value)
    const endDate = new Date(this.selectEndDate)
    if(selected > endDate) {
      // 超出范围处理
      return
    }
    // 正常处理
  }
}
回到顶部