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组件限制。
问题分析:
- 当前picker组件的month模式(fields=“month”)对end/start参数的支持不完善
- 即使按照文档要求传入YYYY-MM-DD格式,月份选择范围限制也不会生效
解决方案:
- 临时方案:使用完整的date模式(fields=“date”)来实现月份选择限制
- 或者手动在change事件中校验选择的月份是否超出范围
示例代码修改建议:
methods: {
bindDateChange(e) {
const selected = new Date(e.detail.value)
const endDate = new Date(this.selectEndDate)
if(selected > endDate) {
// 超出范围处理
return
}
// 正常处理
}
}