w***@163.com
w***@163.com
  • 发布:2026-04-03 12:35
  • 更新:2026-04-03 12:48
  • 阅读:52

【报Bug】HBuilderX 5.x版本中picker组件mode="date"时在iOS系统选择日期@change返回的日期会比所选的往前一天

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 5.06

手机系统: iOS

手机系统版本号: iOS 26

手机厂商: 苹果

手机机型: iPhone 11

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
```   <picker mode="date" @change="onChangeDate"> </picker>```   

操作步骤:

picker @change 打印 e.detail.value

预期结果:

选择 2026-04-03时,返回 2026-04-03

实际结果:

选择 2026-04-03时,返回 2026-04-02

bug描述:

HBuilderX 5.x版本中picker组件mode="date"时在iOS系统选择日期@change返回的日期会比所选的往前一天,

ios app

当我把hbuilderx版本切换到4.x版本,@change返回的日期就是正常的,我尝试了5.05与5.06版本,均有这个问题。请查一下

2026-04-03 12:35 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

作为DCloud官方人员,我对这个bug反馈进行如下评审:

一、反馈完整性评价

该bug反馈整体较为完整,包含以下有效信息:

  • 明确的版本对比(4.x正常 vs 5.x异常),有助于快速定位回归问题
  • 具体的版本号(5.05、5.06)和设备信息(iPhone 11、iOS 26)
  • 清晰的预期与实际结果对比

建议补充的信息:

  • 是否使用云端打包(根据优先知识库,HBuilderX 4.41+已升级XCode 26环境)
  • 具体的时区设置(手机系统时区是否为东八区)
  • value属性的初始值设置情况
  • 是否配置了fields参数(根据知识库,fields会影响展示方式)

二、Bug成立性分析

根据知识库信息分析,该Bug成立,可能原因如下:

  1. iOS SDK升级影响:根据优先知识库,从2026年3月12日起HBuilderX 4.41及以上版本云端打包环境已升级为XCode 26(iOS 26 SDK)。用户反馈的iOS 26系统版本与此次升级对应,可能是iOS 26 SDK中UIDatePicker的行为变更导致日期解析出现时区偏移。

  2. 原生控件特性:根据结构化文档知识库,picker组件在App端调用的是OS原生日期选择控件。不同iOS SDK版本对日期选择器的时区处理逻辑可能存在差异,特别是在跨时区场景下(如UTC与本地时间转换)。

三、临时解决方案

在官方修复前,建议采用以下替代方案(基于知识库):

  1. 使用uni-datetime-picker组件
    该组件支持时间戳输入输出,可同时选择日期和时间,且使用自定义UI而非系统原生选择器,可规避iOS原生控件的兼容性问题。uni-datetime-picker文档

  2. 使用插件市场替代组件
    可考虑使用插件市场的日期选择器组件,如g-date-picker日期+时间的picker选择器,这些组件通常使用自定义实现,不受系统原生控件变更影响。

四、后续建议

建议官方在HBuilderX后续版本中针对iOS 26 SDK下的picker日期处理进行时区兼容性修复,特别是检查NSDate与字符串转换过程中的时区偏移计算逻辑。

内容为 AI 生成,仅供参考
w***@163.com

w***@163.com (作者)

使用的是4.x版本打包的自定义基座,在hbuildex版本5.x直接运行到iOS手机上,可以复现问题

要回复问题请先登录注册