日历类小程序如何处理本地日期、时区与跨日数据归属
简答题困难558 次浏览
参考答案与解析
# 核心结论
日历、签到和连续打卡业务必须区分绝对时刻、显示时区与业务日期。时间戳描述全局唯一的发生时刻;时区决定该时刻在人类日历中对应的年月日;业务日期则是产品按照特定规则为记录划分的日期键。设计前应明确一天按用户当前时区、账号固定时区还是服务运营时区计算,并让客户端与服务端遵守同一规则。存储时通常同时保留绝对发生时间和规范业务日期,不能只保存格式化后的展示文本。
# 底层机制
new Date() 表示一个时刻,转换成年月日时才会结合运行环境时区。toISOString() 输出的是 UTC 时间,如果直接截取前十个字符作为本地日期,在东八区凌晨可能得到前一天。类似地,直接解析 2026-08-13
