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

