如何将Date对象设为00:00:01起始、23:59:59结束并修正时区偏移
解决日期时区偏移问题,设置指定日期的00:00:01和23:59:59
问题出在setHours()是基于本地时区设置时间,而控制台输出的是UTC格式时间(带Z后缀),时区差导致显示偏差。直接改用UTC时区的设置方法即可解决:
let from = new Date(req.params.from); let to = new Date(req.params.to); // 基于UTC时区设置from为目标日期的00:00:01.001 from.setUTCHours(0, 0, 1, 1); // 基于UTC时区设置to为目标日期的23:59:59.999 to.setUTCHours(23, 59, 59, 999); console.log('from: ', from, 'to: ', to);
执行后控制台输出会符合预期:
from: 2024-01-25T00:00:01.001Z to: 2024-01-25T23:59:59.999Z
如果你的业务逻辑依赖本地时区而非UTC,可使用setHours()后查看本地时间格式:
let from = new Date(req.params.from); let to = new Date(req.params.to); from.setHours(0, 0, 1, 1); to.setHours(23, 59, 59, 999); // 输出本地时区的日期时间 console.log('本地时间 from:', from.toLocaleString(), 'to:', to.toLocaleString());
内容的提问来源于stack exchange,提问作者Ahammed Zulaikh
相关产品推荐
相关产品推荐

