js获取前六个月时间

846 阅读1分钟

话不多说直接上代码

// 获取当前时间
let now = new Date(); 

// 往前推6个月 
now.setMonth(now.getMonth() - 6); 

// 去掉时分秒,设置为 00:00:00 
now.setHours(0, 0, 0, 0); 

// 构造六个月前的结束时间 
let end = new Date(); 
end.setMonth(end.getMonth() - 6); 
end.setHours(23, 59, 59, 999); 

// 将时间格式化为字符串 
let startStr = formatDate(now); 
let endStr = formatDate(end); 

// 打印结果 
console.log(startStr); // 输出六个月前的起始时间 
console.log(endStr); // 输出当前时间的终止时间 

// 格式化日期为 yyyy-MM-dd HH:mm:ss 
function formatDate(date) { 
    let year = date.getFullYear(); 
    let month = (date.getMonth() + 1).toString().padStart(2, '0'); 
    let day = date.getDate().toString().padStart(2, '0'); 
    let hour = date.getHours().toString().padStart(2, '0'); 
    let minute = date.getMinutes().toString().padStart(2, '0'); 
    let second = date.getSeconds().toString().padStart(2, '0'); 
    return `${year}-${month}-${day} ${hour}:${minute}:${second}`; 
}

补充:.padStart()方法
.padStart() 是字符串对象自带的方法之一,用于在字符串的左侧填充指定的字符,直到字符串达到指定的长度。

.padStart() 接收两个参数:

  1. targetLength - 目标长度,即字符串最终要达到的长度,必须是一个非负整数。
  2. padString (可选) - 用来填充的字符串,如果省略这个参数,默认使用空格填充。

例如,如果我们想要将字符串 “123” 填充到长度为 5,左侧填充 “0”,可以这样写:

let str = '123';
str = str.padStart(5, '0'); // "00123"

如果 targetLength 小于当前字符串的长度,则不进行填充,直接返回原始字符串。

这个方法通常用于做格式化字符串,例如上面的例子中,可以用来将年月日、时分秒等各个部分填充到固定的长度,便于处理和展示。