关于javascript:日期处理函数工具封装持续更新中……

49次阅读

共计 2354 个字符,预计需要花费 6 分钟才能阅读完成。

日期处理函数工具封装

判断润年

/**
 * 判断润年
 * @param {string} year 年份
 * @return {Boolean} 
 */

export const isLeap = function (year) {if ((year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0)) {return true}
  return false
};

获取星期

/**
 * 获取星期
 * @param {string} date 日期
 * @return {string} 星期
 */
export const getWeek = function (date) {let Stamp = new Date(date)
  // return weeks[Stamp.getDay()];
  let weeks = ['日','一','二','三','四','五','六'];
  return weeks[Stamp.getDay()];
};

获取月份天数

/**
 * 获取月份天数
 * @param {string} year  年份
 * @param {string} month 月份
 * @return {number} 月份天数
 */
export const getMonthDays = function (year, month) {month = parseInt(month) - 1
  if (month < 0 || month > 11) return ''
  let months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
  if (this.isLeap(year)) {months[1] = 29
  }
  return months[month]
};

数字补零

用于格式化日期

/**
 * 数字补零
 * @param {string} str
 * @return {string}
 */
export const zero = function (str) {str = parseInt(str)
  return str > 9 ? str : '0' + str
};

获取明天日期

/**
 * 获取明天日期
 * @param {string} str  日期格局
 * @return {string} 格式化日期
 */
export const getToday = function (str) {const date = new Date();
  const year = date.getFullYear(),
        month = zero(date.getMonth() + 1),
        day = zero(date.getDate()),
        hour = zero(date.getHours()),
        minute = zero(date.getMinutes()),
        second = zero(date.getSeconds());
  let res = '';
  switch (str){
    case "yyyy-mm-dd":
      res = year + '-' + month + '-' + day;
      break;
    case "mm-dd-yyyy":
      res = month + '-' + day + '-' + year;
      break;
    case "yyyy-mm-dd hh:MM:ss":
      res = year + '-' + month + '-' + day + '' + hour +':'+ minute +':' + second;
      break;
    case "hh:MM:ss":
      res = hour + ':' + minute + ':' + second;
      break;
    case "yyyy":
      res = year;
      break;
    case "mm-dd":
      res = month + '-' + day;
      break;
    default:
      res = '参数谬误';
      break;
  }
  return res;
}

获取上一天日期

/**
 * 获取上一天日期
 * @param {string} str  以后日期
 * @return {string} 上一天日期
 */
export const getYesterday = function (str) {let date = str.split('-');
  let year = parseInt(date[0]),
    month = parseInt(date[1]),
    day = parseInt(date[2]);
  if(month > 12 || month < 1 || day > getMonthDays(year,month)) return '日期不非法';
  day -= 1;
  if(day > 0){return year + '-' + zero(month) + '-' + zero(day);
  }
  month -= 1;
  if(month > 0){return year + '-' + zero(month) + '-' + getMonthDays(year,month);
  }
  year -= 1;
  return year + '-' + 12 + '-' + getMonthDays(year,12);
};

获取下一天日期

/**
 * 获取下一天日期
 * @param {string} str  以后日期
 * @return {string} 下一天日期
 */
export const getTomorrow = function (str){let date = str.split('-');
  let year = parseInt(date[0]),
    month = parseInt(date[1]),
    day = parseInt(date[2]);
  if(month > 12 || month < 1 || day > getMonthDays(year,month)) return '日期不非法';
  day += 1;
  if(day <= getMonthDays(year,month)){return year + '-' + zero(month) + '-' + zero(day);
  }
  month += 1;
  if(month < 13){return year + '-' + zero(month) + '-' + '01';
  }
  year += 1;
  return year + '-' + '01' + '-' + '01';
}

todo

获取以后周数

补充

还有什么须要补充的能够在评论中通知我。

正文完
 0