赞
踩
/**
* JavaScript 获取指定日期的前几天或者后几天的日期
* @param date {string} 日期 如:2022-07-12
* @param day {number} 天数 如:1 后一天| -1 前一天,默认后1天
* @param format {string} 时间格式 如:2022-07-13,默认 -
* @returns {string}
*/
- 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。