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

TypeScript如何获取本地当前日期并格式化为yyyy-mm-dd格式

解决方法

方法1:直接利用toISOString()截取

既然你已经用到了toISOString(),可以直接对最终的Date对象调用该方法,再截取前10位即可得到目标格式:

const today = new Date(new Date().toISOString().split("T")[0] + "Z");
const formattedDate = today.toISOString().split("T")[0];
console.log(formattedDate); // 输出 "2024-05-26"

方法2:使用Intl.DateTimeFormat(更灵活规范)

借助浏览器内置的国际化API,通过指定格式选项来生成目标日期字符串:

const today = new Date(new Date().toISOString().split("T")[0] + "Z");
const formattedDate = new Intl.DateTimeFormat('en-CA', {
  year: 'numeric',
  month: '2-digit',
  day: '2-digit'
}).format(today);
console.log(formattedDate); // 输出 "2024-05-26"

en-CA区域设置默认会输出YYYY-MM-DD格式,也可以搭配'zh-CN'并保留相同格式选项来实现同样效果。

方法3:手动拼接年、月、日信息

提取Date对象的年、月、日数据,补零后手动拼接成目标格式:

const today = new Date(new Date().toISOString().split("T")[0] + "Z");
const year = today.getUTCFullYear();
const month = String(today.getUTCMonth() + 1).padStart(2, '0'); // 月份从0开始,需+1
const day = String(today.getUTCDate()).padStart(2, '0');
const formattedDate = `${year}-${month}-${day}`;
console.log(formattedDate); // 输出 "2024-05-26"

这里使用getUTC*系列方法,是因为你的today是基于UTC零点创建的,能避免时区差异导致日期值偏差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:19:52