日期型业务怎样避免本地时间字符串造成跨日错账
简答题中等843 次浏览
参考答案与解析
# 核心结论
日期型业务必须先定义“业务日”依据哪个时区结算,再决定存储与查询方式。签到、账务和日历统计不能直接使用设备生成的本地日期字符串作为全局可信主键。通常应保存服务端确认的绝对时间、事件发生时间、业务时区以及按明确规则计算的业务日期;查询某个业务日时,将该时区的日初和次日日初转换为绝对时间范围,使用左闭右开区间检索。显示字符串只负责展示,不能承担身份、排序或唯一性判断。
# 底层机制
时间戳描述一个绝对时刻,时区决定该时刻属于哪个自然日,区域格式规则决定日期如何显示,三者不能混为一谈。toLocaleDateString 的结果会受到设备语言、区域设置、系统实现、分隔符和字段顺序影响,同一天可能生成不同字符
