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
相关产品推荐
相关产品推荐

