1***@qq.com
1***@qq.com
  • 发布:2025-08-18 14:14
  • 更新:2025-08-19 10:48
  • 阅读:185

uni-datetime-picker设置start时选择时间确认时会报错

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 4.76

第三方开发者工具版本号: 3.9.11

基础库版本号: 2.9.41

项目创建方式: HBuilderX

示例代码:

<uni-datetime-picker :start="Date.now()" type="daterange"></uni-datetime-picker>

操作步骤:

预期结果:

不报错

实际结果:

报错

bug描述:

uni-datetime-picker组件daterange下设置start时选择时间确认时会报错

2025-08-18 14:14 负责人:无 分享
已邀请:
DCloud_UNI_JBB

DCloud_UNI_JBB

没复现报错

  • 1***@qq.com (作者)

    版本是1.5.10吗

    2025-08-18 14:45

爱豆豆

爱豆豆 - 办法总比困难多

你好 刚测试了下 确实会出现这个问题
组件内部比较时间的代码中兼容ios端代码少了类型判断
可以在组件中修改dateCompare 和 diffDate 的代码

startDate = new Date(startDate.replace('-', '/').replace('-', '/'))  
endDate = new Date(endDate.replace('-', '/').replace('-', '/'))  
修改为以下代码  
if (typeof startDate === 'string') {  
    startDate = new Date(startDate.replace('-', '/').replace('-', '/'))  
}  
if (typeof endDate === 'string') {  
       endDate = new Date(endDate.replace('-', '/').replace('-', '/'))  
}

或者用字符串格式化后的时间字符串也是不会报错的<uni-datetime-picker start="2025-08-11" type="daterange" />

  • 1***@qq.com (作者)

    就是升级后报错了

    2025-08-18 14:47

  • 爱豆豆

    回复 1***@qq.com: 按上面的修改过后还会报错?

    2025-08-18 15:06

  • 1***@qq.com (作者)

    回复 爱豆豆: 应该不是这个问题,应该是字符串和数字trim报错的问题

    2025-08-18 16:09

  • 爱豆豆

    回复 1***@qq.com: 报的什么错 我看下

    2025-08-18 16:36

  • 1***@qq.com (作者)

    回复 爱豆豆: TypeError: startDate.trim is not a function

    2025-08-18 16:44

  • 爱豆豆

    回复 1***@qq.com: 没复现出 你这个报错 我看这个组件内没有用到trim方法啊 你可以发一个复现项目吗

    2025-08-18 17:21

  • 1***@qq.com (作者)

    回复 爱豆豆: 版本需要最新版的 里边有个公共方法dateCompare 用到了trim 会对时间戳trim 会报错

    2025-08-18 17:33

  • 爱豆豆

    回复 1***@qq.com: 是最新的 uni-datetime-picker 2.2.40(2025-04-14)

    2025-08-18 17:47

  • 1***@qq.com (作者)

    回复 爱豆豆: 我用的是uni-ui1.5.10组件里的uni-datetime-picker,是一个东西吗?

    2025-08-19 09:03

  • 爱豆豆

    回复 1***@qq.com: 一样的啊 https://ext.dcloud.net.cn/plugin?id=3962 uni-ui中uni-datetime-picker也是这个

    2025-08-19 09:25

  • 爱豆豆

    回复 1***@qq.com: 你发一个复现项目 或者 把你用的uni-datetime-picker发出来

    2025-08-19 09:25

  • 1***@qq.com (作者)

    回复 爱豆豆: 下边评论有一个

    2025-08-19 10:49

  • 爱豆豆

    回复 1***@qq.com: 复现了 npm安装的话最新包是1.5.1

    但是官方插件市场的都已经更新到1.5.9了 https://ext.dcloud.net.cn/plugin?id=55&update_log

    估计是老版本的bug

    2025-08-19 12:04

  • 1***@qq.com (作者)

    回复 爱豆豆: 那需要官方更新一下npm库了

    2025-08-19 13:42

  • DCloud_UNI_JBB

    回复 1***@qq.com: npm库已经更新了

    2025-08-19 16:51

  • DCloud_UNI_JBB

    回复 DCloud_UNI_JBB: 插件市场暂时还没更新

    2025-08-19 16:52

  • 1***@qq.com (作者)

    回复 DCloud_UNI_JBB: 感谢大佬

    2025-08-19 17:10

  • DCloud_UNI_JBB

    回复 1***@qq.com: 你是hx创建的项目,可以先自行修改下 function dateCompare(startDate, endDate) {

    startDate = new Date(fixIosDateFormat(typeof startDate === 'string' ? startDate.trim() : startDate))

    endDate = new Date(fixIosDateFormat(typeof endDate === 'string' ? endDate.trim() : endDate))

    return startDate <= endDate

    }

    2025-08-19 17:12

  • 1***@qq.com (作者)

    回复 DCloud_UNI_JBB: ok

    2025-08-19 17:16

1***@qq.com

1***@qq.com (作者)

复现demo,发现只有npm的方式会报错

  • DCloud_UNI_JBB

    这个组件升级到 2.2.41 试试还有没有报错

    2025-08-20 15:40

要回复问题请先登录注册