You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 16:32:37