学无先后,达者为师

网站首页 前端文档 正文

JavaScript JS获取指定日期的前几天或者后几天(默认后1天)

作者:我总是词不达意 更新时间: 2022-09-22 前端文档

/**
 * JavaScript 获取指定日期的前几天或者后几天的日期
 * @param date {string} 日期 如:2022-07-12
 * @param day {number} 天数 如:1 后一天| -1 前一天,默认后1天
 * @param format {string} 时间格式 如:2022-07-13,默认 - 
 * @returns {string}
 */


 支持传入格式: yyyy-mm-dd  yyyy/mm/dd yyyy年mm月dd日


function getNextDate(date, day = 1, format = "{y}-{m}-{d}") {
  if (date) {
    //处理传入年月日格式 例如 date = 2022年07月12日
    date = date.match(/\d+/g).join("-");
    //方式二处理传入年月日格式 (需要针对是否是年月日格式判断)
    //date = date.replace(/[年月日]/g, "-").slice(0, -1);
    //方式三处理传入年月日格式
    //date = date.replace(/[年月]/g, "-").replace("日", "");
    // console.log(date, "date"); // 2022-07-12
    const nDate = new Date(date);
    nDate.setDate(nDate.getDate() + day);

    const formatObj = {
      y: nDate.getFullYear(),
      m: nDate.getMonth() + 1,
      d: nDate.getDate(),
    };
    return format.replace(/{([ymd])+}/g, (result, key) => {
      const value = formatObj[key];
      return value.toString().padStart(2, "0");
    });
  } else {
    console.log("date为空或格式不正确");
  }
}

 使用示例


console.log(getNextDate("2022-07-12")); //2022-07-13
console.log(getNextDate("2022/7/12")); // 2022-07-13
console.log(getNextDate("2022年7月12日")); // 2022-07-13
console.log(getNextDate("2022/7/12",2)); // 2022-07-14 
console.log(getNextDate("2022年7月12日",-10)); // 2022-07-02 
console.log(getNextDate("2022-7-12", 4, "{y}年{m}月{d}日")); // 2022年07月16日 
console.log(getNextDate("2022-7-12", 1, "{y}/{m}/{d}")); // 2022/07/13 

 到此结束。

原文链接:https://blog.csdn.net/weixin_43743175/article/details/125744097

栏目分类
最近更新