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

如何在JavaScript中将YYYYMMDD格式日期转换为YYMMDD格式?

解决JavaScript日期格式从YYYYMMDD改为YYMMDD并保留时区处理的问题

方案一:基于原代码快速修改

直接在原代码的字符串处理末尾添加.slice(2),即可去掉四位数年份的前两位,得到YYMMDD格式:

let date = new Date();
let timeNow = new Date(date.valueOf()-60*1000*date.getTimezoneOffset())
  .toISOString()
  .substring(0, 10)
  .replace(/-/g,"")
  .slice(2); // 截取年份后两位
console.log(timeNow);

方案二:拆分日期组件拼接(更直观可控)

如果希望代码逻辑更清晰,可以单独提取年份后两位、月份和日期,再手动拼接成目标格式:

let date = new Date();
// 调整时区偏移,确保日期与本地时区一致
let adjustedDate = new Date(date.valueOf() - 60*1000*date.getTimezoneOffset());

// 提取各部分并补零
let year = adjustedDate.getFullYear().toString().slice(-2);
let month = String(adjustedDate.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需+1
let day = String(adjustedDate.getDate()).padStart(2, '0');

// 拼接成YYMMDD
let timeNow = year + month + day;
console.log(timeNow);

关于时区处理的必要性

你处于+5:30时区,toISOString()方法返回的是UTC时区的日期字符串。如果直接使用初始代码(未调整时区偏移),当本地时间在凌晨00:00~05:30之间时,UTC日期会比本地日期晚一天,导致获取的日期错误。原代码中的date.valueOf()-60*1000*date.getTimezoneOffset()逻辑,通过调整时间戳让UTC日期与本地日期对齐,确保获取的是正确的本地日期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:22:44