uni-app 日期选择设置了‘粒度’之后 时间只能选到1960年 设置起始时间等无效
uni-app 日期选择设置了‘粒度’之后 时间只能选到1960年 设置起始时间等无效
测试过的手机
iPhone XR 华为
示例代码
<pickermode="date":value="date"fields="day":start="startDate":end="endDate"@change="bindDateChange">
<viewclass="uni-input">{{date}}</view>
</picker>
操作步骤
<pickermode="date":value="date"fields="day":start="startDate":end="endDate"@change="bindDateChange">
<viewclass="uni-input">{{date}}</view>
</picker>
预期结果
设置之后可以自由选择时间 而不是只能选择1960 之后的
实际结果
设置之后 只能选择1960 之后的
bug描述
日期选择设置了‘粒度’ 之后 时间只能选到1960 年 设置起始时间啥的无效
| 信息项 | 内容 |
|----------------|----------------|
| 产品分类 | uniapp/App |
| PC开发环境 | Mac |
| PC开发环境版本 | 10.12 |
| 开发工具类型 | 正式 |
| 开发工具版本 | 3.1.16 |
| 手机系统 | 全部 |
| 手机厂商 | 华为 |
| 页面类型 | vue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app 日期选择设置了‘粒度’之后 时间只能选到1960年 设置起始时间等无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
将manifest.json中nvueCompiler设置为"weex" 就能解决.
更多关于uni-app 日期选择设置了‘粒度’之后 时间只能选到1960年 设置起始时间等无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
好的。完事我试试 谢谢
是使用的hello-uniapp测试的吗?使用3.1.21测试没有发现此问题,可否提供一份复现的demo
是使用hello-uniapp进行测试的 我使用的是3.1.18 我更新下版本试试
麻烦帮忙看下 谢谢 以下是截图 需要我给hello-uniapp压缩么?
这是只往上加了一个fields="day"就会出现这个情况?
回复 DCloud_UNI_LXH: 是的 在我项目中出现了 这个情况 我就在hello-uniapp里面试了试 结果一样都是只能选到1960
回复 小人物115: 手机什么型号的,Android什么版本?我测试了iOS14,Android 11,Android 8。都没有发现这个情况
回复 DCloud_UNI_LXH: 目前测试了 iPhone XR iOS 14.6, 华为 honor9 安卓9 。 是不是因为我这个项目是老项目导致的?我需要新建项目试试么?
回复 小人物115: 查看一下你出问题项目manifest.json中nvueCompiler是否配置?如果配置,配置的是什么?
回复 DCloud_UNI_LXH: 配置的是 “nvueCompiler” : “uni-app”,
这是 uni-app 中日期选择器的常见问题。问题出在 fields="day" 这个粒度设置上。
当设置 fields="day" 时,uni-app 内部会使用 iOS/Android 原生的日期选择器组件。这些原生组件有默认的时间范围限制,iOS 的 UIDatePicker 默认最小日期就是 1900 年1月1日,最大日期是 4001年12月31日。
解决方案:
-
移除 fields 属性:如果不特别指定
fields,uni-app 会使用自己的日期选择器,这时start和end参数就能正常生效。 -
如果需要精确到天的选择,可以这样调整代码:
<picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">
<view class="uni-input">{{date}}</view>
</picker>
- 确保 startDate 格式正确:起始日期必须是
YYYY-MM-DD或YYYY/MM/DD格式,例如:
data() {
return {
startDate: '1900-01-01',
endDate: '2100-12-31',
date: ''
}
}

