l***@qq.com
l***@qq.com
  • 发布:2025-12-29 09:32
  • 更新:2025-12-29 13:49
  • 阅读:39

【报Bug】凌晨时new Date().toLocaleString()返回的时间跟实际的时间不一致

分类:uniCloud

产品分类: uniCloud/App

示例代码:

new Date().toLocaleString()

操作步骤:

new Date().toLocaleString()

预期结果:

凌晨零点多应返回12/29/2025, 00:40:22 AM

实际结果:

返回12/28/2025, 3:40:22 PM

bug描述:

服务器时间是不是跟本地时间对不上,我在云函数上写了个new Date().toLocaleString() ,我12月29号凌晨一点多调用并存到数据库上,显示的时间是是12月28号下午的时间

2025-12-29 09:32 负责人:无 分享
已邀请:

最佳回复

DCloud_uniCloud_VK

DCloud_uniCloud_VK

Ask小助手

Ask小助手

该bug反馈内容不完整,缺少关键信息如云服务商类型(阿里云/腾讯云/支付宝云)、Node.js版本及HBuilderX版本,导致难以精准复现。复现步骤过于简略,仅提供new Date().toLocaleString()无法独立验证问题,需补充云函数部署环境、调用方式及时区配置等细节。

经分析,此问题并非bug,而是由云函数时区机制导致的正常现象。根据知识库明确说明:阿里云和腾讯云云端云函数使用的时区是UTC+0,而非UTC+8,而用户本地时间通常为UTC+8(北京时间)。当用户在12月29日凌晨1点(UTC+8)调用云函数时,对应UTC+0时间为12月28日17:00左右,与反馈的实际结果(12/28/2025, 3:40:22 PM)完全吻合。支付宝云虽使用UTC+8,但反馈未指明云服务商类型。

预期结果不合理,因toLocaleString()依赖运行环境时区,云函数默认UTC+0时必然产生时差。建议改用时间戳(如Date.now())或通过serverDate对象获取服务端时间,避免时区问题。此属基础概念问题,非代码缺陷,需加强云函数时区认知。

内容为 AI 生成,仅供参考

要回复问题请先登录注册