JS时间操作

  // 获取下个月的特定一天
  getSpecificDayOfNextMonth(day, dayEnd = 0) {
    let now = new Date();
    now.setMonth(now.getMonth() + 1, day); // 设置月份加一,日期设置为特定的一天

    if (dayEnd) {
      const newYear = now.getFullYear();
      const newMonth = now.getMonth() + 1; // 注意getMonth()返回的是0-11,所以要加1
      const newDay = now.getDate(); // 日期
      const newDateTime = `${newYear}-${newMonth}-${newDay} 23:59:59`
      now = new Date(newDateTime)
      return now
    }
    return now;
  }
  // 获取指定年月的第一天
  getFirstDayOfMonth(year, month) {
    return new Date(year, month - 1, 1);
  }
  // 获取指定年月的最后一天
  getLastDayOfMonth(year, month, dayEnd) {
    let lastDate
    if (dayEnd) {
      lastDate = new Date(year, month, 0, 23, 59, 59)
    } else {
      lastDate = new Date(year, month, 0);
    }
    return lastDate
  }
 // 格式化带时区的时间 
  formatDate(date, type = 'date') {
    if (!date) {
      return ''
    }
    let dateObj = new Date(date); // 'Thu April 12 2021 22:03:00 GMT+0800 (中国标准时间)'
    let datetime
    // 获取年份、月份和日期
    let year = dateObj.getFullYear();
    let month = dateObj.getMonth() + 1; // 月份是从 0 开始的,所以需要加 1
    let day = dateObj.getDate();
    let hour = dateObj.getHours();
    let minute = dateObj.getMinutes();
    let second = dateObj.getSeconds();

    // 将月份和日期转换成两位数格式
    let formattedMonth = month.toString().padStart(2, '0');
    let formattedDay = day.toString().padStart(2, '0');
    let formattedHour = hour.toString().padStart(2, '0');
    let formattedMinute = minute.toString().padStart(2, '0');
    let formattedSecond = second.toString().padStart(2, '0');

    if (type === 'month') {
      datetime = year + '-' + formattedMonth
    } else if (type === 'datetime') {
      datetime = year + '-' + formattedMonth + '-' + formattedDay + " " + formattedHour + ':' + formattedMinute + ':' + formattedSecond
    } else {
      datetime = year + '-' + formattedMonth + '-' + formattedDay
    }
    return datetime;
  }
 

 

posted @ 2024-12-07 16:33  烧机  阅读(10)  评论(0编辑  收藏  举报