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

如何在JS/TS中将指定Epoch时间修改为次日凌晨12点?

在JavaScript/TypeScript中将指定时间戳转为次日零点的时间戳

假设你有一个Epoch时间戳1665531785000(对应2022年10月11日 星期二 晚上11:43:05),想要将其转换为次日零点的时间戳1665532800000(对应2022年10月12日 星期三 凌晨12:00:00),可以用以下两种简单方法实现:

方法一:通过Date对象直接调整时间

先将原时间戳转为Date对象,调整日期到次日,再把时分秒毫秒重置为0,最后转回时间戳:

const originalTimestamp = 1665531785000;
// 基于原时间戳创建Date对象
const date = new Date(originalTimestamp);

// 将日期加1天
date.setDate(date.getDate() + 1);
// 重置时分秒及毫秒为0,确保是零点整
date.setHours(0, 0, 0, 0);

// 转换为目标时间戳
const targetTimestamp = date.getTime();
console.log(targetTimestamp); // 输出:1665532800000

方法二:计算当天零点再加一天时长

先获取原时间戳对应日期的零点时间戳,再加上一天的毫秒数(86400000)得到次日零点:

const originalTimestamp = 1665531785000;
const date = new Date(originalTimestamp);

// 获取当天零点的时间戳
const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();
// 次日零点 = 当天零点 + 一天的毫秒数(24*60*60*1000)
const targetTimestamp = startOfDay + 86400000;
console.log(targetTimestamp); // 输出:1665532800000

注意事项

  • Date对象的setDate、setHours方法会直接修改原对象,但上面的代码中我们是基于原时间戳创建新的Date对象,不会影响原数据。
  • 两种方法都能正确处理跨月、跨年的情况(比如12月31日转1月1日),Date对象会自动处理月份和年份的进位。

内容的提问来源于stack exchange,提问作者vkesani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:55:42