javascript的防坑小指南

1. 

function getPreviousDay(date = new Date()) {
  const previous = new Date(date.getTime());
  previous.setDate(date.getDate() - 1);
  
  return previous;
}

var lastday3=new Date("2025-01-01");
lastday3.setDate(lastday3.getDate()-1);
const lastday3Str=lastday3.toISOString().split('T')[0];
console.log(lastday3Str); // 2024-12-31

var lastday4=new Date(2025,0,1);
lastday4.setDate(lastday4.getDate()-1);
const lastday4Str=lastday4.toISOString().split('T')[0];
console.log(lastday4Str); // 2024-12-30


console.log("fixed???");
var lastday5 = getPreviousDay(new Date(2025,0,1));
const lastday5Format = lastday5.getFullYear() + '-' + 
                      String(lastday5.getMonth() + 1).padStart(2, '0') + '-' + 
                      String(lastday5.getDate()).padStart(2, '0');
console.log(lastday5Format);  //2024-12-31

异常原因

toISOString() 会强制转换为 UTC 时区,可能导致日期时间显示与本地预期不符。而手动拼接日期时间字符串可以保留原始数据的本地值,避免时区转换的干扰。

posted on 2025-05-09 17:23  emalovecode  阅读(7)  评论(0)    收藏  举报