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

JavaScript使用new Date()格式化时间获取当日00:00与23:59格式字符串

JavaScript 日期格式化实现方案

你可以通过补零处理拼接字符串,或者直接操作Date对象的setHours方法实现需求,两种常用实现方式如下:

方式1:直接拼接字符串(仅需格式化输出时使用)

这种方式基于你原有代码逻辑修改,额外添加了个位数前导补零处理,避免出现2021-1-9 0:5这类不符合格式要求的输出:

// 补零辅助函数:小于10的数字前自动补0
const padZero = num => num < 10 ? '0' + num : num.toString();

const date = new Date();
const year = date.getFullYear();
const month = padZero(date.getMonth() + 1);
const day = padZero(date.getDate());

// 直接拼接目标格式字符串
const dayStartTime = `${year}-${month}-${day} 00:00`;
const dayEndTime = `${year}-${month}-${day} 23:59`;

console.log(dayStartTime); // 输出示例:2021-10-28 00:00
console.log(dayEndTime); // 输出示例:2021-10-28 23:59

方式2:操作Date对象(需后续使用时间对象做计算时使用)

如果你后续需要对生成的时间做大小比较、时间戳计算等操作,可以直接修改Date对象的时分属性,再统一格式化输出:

const padZero = num => num < 10 ? '0' + num : num.toString();
// 统一格式化Date对象的工具函数
const formatFullDate = (targetDate) => {
  return `${targetDate.getFullYear()}-${padZero(targetDate.getMonth() + 1)}-${padZero(targetDate.getDate())} ${padZero(targetDate.getHours())}:${padZero(targetDate.getMinutes())}`;
}

const originalDate = new Date();
// 生成当天00:00的Date对象,依次设置时、分、秒、毫秒
const startDate = new Date(originalDate);
startDate.setHours(0, 0, 0, 0);
// 生成当天23:59的Date对象
const endDate = new Date(originalDate);
endDate.setHours(23, 59, 0, 0);

console.log(formatFullDate(startDate)); // 输出示例:2021-10-28 00:00
console.log(formatFullDate(endDate)); // 输出示例:2021-10-28 23:59

注意事项

  • 如果你的运行环境支持ES6+,可以直接用num.toString().padStart(2, '0')替代自定义的补零逻辑,效果完全一致
  • 直接修改原Date对象会改变原有值,所以操作前要通过new Date(originalDate)拷贝一份新对象,避免影响原有数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:15:04