2***@qq.com
2***@qq.com
  • 发布:2026-04-14 13:41
  • 更新:2026-04-14 13:42
  • 阅读:25

HbuildX升级后,由4.87->5.06,picker mode="date"选择器,切换在ios中获取值e.detail.value会少一天,安卓和小程序正常的

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 5.06

手机系统: iOS

手机系统版本号: iOS 16

手机厂商: 苹果

手机机型: iphonex等都存在

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

<picker mode="date" :value="submitInfo.date" @change="bindDateChange" name='date'><view >{{submitInfo.date}}</view></picker>

const bindDateChange = (e) => {
submitInfo.date = e.detail.value;
}

操作步骤:

<picker mode="date" :value="submitInfo.date" @change="bindDateChange" name='date'><view >{{submitInfo.date}}</view></picker>

const bindDateChange = (e) => {
submitInfo.date = e.detail.value;
}

预期结果:

2026-10-03

实际结果:

2026-10-02

bug描述:

HbuildX升级后,由4.87->5.06,picker mode="date"选择器,切换在ios中获取值e.detail.value会少一天,安卓和小程序正常的

2026-04-14 13:41 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

感谢您提交的bug反馈。经过评审,这是一个有效且有价值的bug报告,涉及HBuilderX版本升级后iOS平台日期选择器的兼容性问题。以下是我的详细评审意见:

评审结论

Bug有效性:✅ 确认为有效反馈
紧急程度:高(影响核心组件且为平台特定问题)
复现可能性:高(有明确的环境信息和代码示例)

内容完整性分析

优点

  • 环境信息完整,明确指出了版本变更(4.87→5.06)与问题出现的关联性
  • 平台差异描述清晰(iOS异常,安卓/小程序正常)
  • 提供了具体的日期示例(2026-10-03 vs 2026-10-02),便于定位"少一天"的现象

需要补充的信息

  1. 时区环境:请确认iOS设备的时区设置(如东八区/UTC+8)以及是否开启自动时区
  2. 完整复现步骤:建议补充具体操作流程(如:点击picker→选择10月3日→点击确定→观察返回值)
  3. submitInfo.date初始值:建议提供该变量的初始赋值代码,确认是否为YYYY-MM-DD格式
  4. iOS具体版本:目前只写了iOS 16,建议补充具体版本号(如16.1.2)

技术初步分析

根据picker组件文档mode="date"在App端调用的是OS原生日期选择控件。该问题疑似iOS原生日期控件与JavaScript日期对象转换时的时区偏移问题

  • 可能原因1:iOS原生控件返回的日期可能基于UTC时间,而JavaScript转换时按本地时区处理,导致跨天时差计算错误
  • 可能原因2:HBuilderX 5.06升级了iOS编译基座或SDK,日期序列化逻辑有变更

临时解决方案

在官方修复前,建议在bindDateChange中增加日期校正逻辑:

const bindDateChange = (e) => {  
    // 临时修复:确保日期正确性  
    let selectedDate = e.detail.value;  

    // 如果检测到iOS平台且日期异常,可进行校正  
    // #ifdef APP-PLUS  
    if (uni.getSystemInfoSync().platform === 'ios') {  
        const d = new Date(selectedDate);  
        // 根据时区偏移进行校正处理  
    }  
    // #endif  

    submitInfo.date = selectedDate;  
}

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

后续处理

  1. 版本确认:您提到的HBuilderX 5.06版本较新(当前知识库最新正式版记录为5.04),该问题可能已在后续版本修复,建议尝试:

    • 升级至最新Alpha版(5.03+)或等待5.07正式版
    • 或临时回退至4.87版本验证
  2. 深度排查:如问题持续存在,建议提供一个可运行的最小化Demo项目(包含pages.json和完整vue文件),以便我们精确复现。

ISSUE系统:该问题已记录,建议关注HBuilderX更新日志获取修复进展。

感谢您的专业反馈,这类平台特定的兼容性问题对我们完善产品质量非常重要!

内容为 AI 生成,仅供参考

要回复问题请先登录注册