js获取上月开始和结束时间

/**
时间格式化
 */
function formatDate(val) {
    var date = new Date(Number(val)); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
    var Y = date.getFullYear() + "-";
    var M = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-";
    var D = date.getDate() + " ";
    var h = date.getHours() + ":";
    var m = date.getMinutes() + ":";
    var s = (date.getSeconds() < 10 ? "0" + (date.getSeconds()) : date.getSeconds());
    return Y + M + D + h + m + s;
}

/**
 * @description 得到本月、上月、下月的起始、结束日期
 * @param {String} type 有两种选择,"s"代表开始,"e"代表结束
 * @param {Number} months 不传或0代表本月,-1代表上月,1代表下月
 */
function getMonth(type,months = 0) {
  const now = new Date(); // 当前日期
  let nowYear = now.getYear(); 
  const nowMonth = now.getMonth() - months; 
  nowYear += (nowYear < 2000) ? 1900 : 0;  let result;
  if (type === 's') {
    const monthStartDate = new Date(nowYear, nowMonth, 1);
    result = formatDate(monthStartDate);
  } else {
    const monthStartDate = new Date(nowYear, nowMonth, 1);
    const monthEndDate = new Date(nowYear, nowMonth + 1, 1);
    const days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
    result = formatDate(new Date(nowYear, nowMonth, days));
  }
  return result;
}

然后在需要本月或上月开始或结束时间的地方使用 getMonth 函数即可。

本文由:小天丶 发布于 小菜的IT网,转载请注明出处:https://www.xiaocaiit.cn/660.html

相关推荐

评论此文章

已有0人参与了评论