时间日期格式转换大全

 记录一下常用到的时间转换:把格式化日期时间封装成一个方法,需要的时候单独调用即可

1. 将2023.06.13转换成2023-06-13

//格式化时间

      getNowFormatDate(date) {

        //   let date = new Date(),

        let year = date.getFullYear(), //获取完整的年份(4位)

          month = date.getMonth() + 1, //获取当前月份(0-11,0代表1月)

          strDate = date.getDate(); // 获取当前日(1-31)

        if (month < 10) month = `0${month}`; // 如果月份是个位数,在前面补0

        if (strDate < 10) strDate = `0${strDate}`; // 如果日是个位数,在前面补0

        return `${year}-${month}-${strDate}`;

      },

2. 将时间戳转换为  2023-06-13  11:17:23

formattedDate(timestamp){
   const date = new Date(timestamp);
   const year = date.getFullYear();  
   const month = (date.getMonth() + 1).toString().padStart(2, '0');  
   const day = date.getDate().toString().padStart(2, '0'); 
   const hour = date.getHours().toString().padStart(2, '0');
   const minute = date.getMinutes().toString().padStart(2, '0');
   const second = date.getSeconds().toString().padStart(2, '0');
   const formattedDate = `${year}-${month}-${day} ${hour}:${minute}:${second}`;  
   return formattedDate
 }
 

// 假设有一个时间戳变量 timestamp  
   const timestamp = 1615957883000;
   const newDate = this.formattedDate(timestamp)
   console.log(newDate);  //打印结果为  2023-06-13  11:17:23
 

 3. 把格式化星期封装成一个方法,需要的时候单独调用即可

 getWeek(time){
  // 定义星期的缩写  
  const show_day = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
  const now = new Date(time);  // 获取当前时间 
  const dayOfWeek = now.getDay(); // 获取星期几 
  return show_day[dayOfWeek];
}


  console.log(show_day[dayOfWeek]);  //星期二

4. 日期时间字符串转换格式,例如:

20230304162053 转换成 2023-03-04 16:20:53

const date = '20230304162053'
const newDate = date.replace(/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/, '$1-$2-$3 $4:$5:$6');
console.log(newDate);

5.封装时间转换函数,跟据当前的时间戳转换。并且根据传参today就返回今日的开始时间和结束时间,传参week就返回本周的开始时间和结束时间,传参month就返回本月的开始时间和结束时间

function getTimeRange(type) {
  function getCurrentWeekRange() {
    const currentDate = new Date();

    // 获取本周的第一天,星期一为一周的起始
    const start = new Date(
      currentDate.getFullYear(),
      currentDate.getMonth(),
      currentDate.getDate() - currentDate.getDay() + 1
    );

    // 获取本周的最后一天,星期日为一周的结束
    const end = new Date(
      currentDate.getFullYear(),
      currentDate.getMonth(),
      currentDate.getDate() + (7 - currentDate.getDay())
    );

    return {
      start: formatDate(start),
      end: formatDate(end)
    };
  }

  function getCurrentMonthRange() {
    const currentDate = new Date();

    // 获取本月的第一天
    const start = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);

    // 获取下个月的第一天
    const nextMonth = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 1);

    // 获取本月的最后一天
    const end = new Date(nextMonth - 1);

    return {
      start: formatDate(start),
      end: formatDate(end)
    };
  }

  function getCurrentDayRange() {
    const currentDate = new Date();

    // 获取今日的开始时间
    const start = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());

    // 获取今日的结束时间
    const end = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate() + 1);

    return {
      start: formatDate(start),
      end: formatDate(end)
    };
  }

  function formatDate(date) {
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    return [year, month, day].join('-');
  }

  if (type === 'week') {
    return getCurrentWeekRange();
  } else if (type === 'month') {
    return getCurrentMonthRange();
  } else if (type === 'today') {
    return getCurrentDayRange();
  } else {
    return null;
  }
}
// getTimeRange函数的使用示例
const weekRange = getTimeRange('week');
const monthRange = getTimeRange('month');
const todayRange = getTimeRange('today');

//本周
console.log("本周开始时间:", weekRange.start); //2023-08-07
console.log("本周结束时间:", weekRange.end); //2023-08-13

//本月
console.log("本月开始时间:", monthRange.start); //2023-08-01
console.log("本月结束时间:", monthRange.end); //2023-08-31

//今日
console.log("今日开始时间:", todayRange.start); //2023-08-07
console.log("今日结束时间:", todayRange.end);  //2023-08-07

格式化之前的时间戳,一定要是数字型,不能是字符串,否则会出现NaN 

猜你喜欢

转载自blog.csdn.net/ll123456789_/article/details/131184421