js获取时间的年,月,日,季度,年份的代码收集和改编

本文介绍了一套实用的日期操作函数,包括获取当前时间、计算指定月份的天数、确定季度范围及年度范围的方法。通过这些函数,开发者可以轻松地进行日期相关计算,如计算季度的起止日期和获取本年的第一天及最后一天。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

****/** *
    * 获得当前时间
    */****
function getCurrentDate() {
  return new Date()
}

/**
  * **获得该月的天数**
  * @param year年份
  * @param month月份
  * */
function getMonthDays(year, month) {
  // 本月第一天 1-31
  var relativeDate = new Date(year, month, 1)
  // 获得当前月份0-11
  var relativeMonth = relativeDate.getMonth()
  // 获得当前年份4位年
  var relativeYear = relativeDate.getFullYear()

  // 当为12月的时候年份需要加1
  // 月份需要更新为0 也就是下一年的第一个月
  if (relativeMonth === 11) {
    relativeYear++
    relativeMonth = 0
  } else {
    // 否则只是月份增加,以便求的下一月的第一天
    relativeMonth++
  }
  // 一天的毫秒数
  var millisecond = 1000 * 60 * 60 * 24
  // 下月的第一天
  var nextMonthDayOne = new Date(relativeYear, relativeMonth, 1)
  // 返回得到上月的最后一天,也就是本月总天数
  return new Date(nextMonthDayOne.getTime() - millisecond).getDate()
}

/**
  * **获得本季度的起止日期**
  */
function getCurrentSeason() {
  // 起止日期数组
  var startStop = []
  // 获取当前时间
  var currentDate = getCurrentDate()
  // 获得当前月份0-11
  var currentMonth = currentDate.getMonth()
  // 获得当前年份4位年
  var currentYear = currentDate.getFullYear()
  // 获得本季度开始月份
  var quarterSeasonStartMonth = getQuarterSeasonStartMonth(currentMonth)
  // 获得本季度结束月份
  var quarterSeasonEndMonth = quarterSeasonStartMonth + 2

  // 获得本季度开始的日期
  var quarterSeasonStartDate = new Date(currentYear, quarterSeasonStartMonth, 1)
  // 获得本季度结束的日期
  var quarterSeasonEndDate = new Date(currentYear, quarterSeasonEndMonth, getMonthDays(currentYear, quarterSeasonEndMonth))
  // 加入数组返回
  startStop.push(formatDate(quarterSeasonStartDate))
  startStop.push(formatDate(quarterSeasonEndDate))
  // 返回
  return startStop
}

/**
  * **得到本季度开始的月份**
  * @param month 需要计算的月份
  ***/
function getQuarterSeasonStartMonth(month) {
  // var quarterMonthStart = 0
  var spring = 0 // 春
  var summer = 3 // 夏
  var fall = 6 // 秋
  var winter = 9 // 冬
  // 月份从0-11
  if (month < 3) {
    return spring
  }

  if (month < 6) {
    return summer
  }

  if (month < 9) {
    return fall
  }

  return winter
}

/** *
    * **得到本年的起止日期**
    *
    */
function getCurrentYear() {
  // 起止日期数组
  var startStop = []
  // 获取当前时间
  var currentDate = getCurrentDate()
  // 获得当前年份4位年
  var currentYear = currentDate.getFullYear()

  // 本年第一天
  var currentYearFirstDate = new Date(currentYear, 0, 1)
  // 本年最后一天
  var currentYearLastDate = new Date(currentYear, 11, 31)
  // 添加至数组
  startStop.push(formatDate(currentYearFirstDate))
  startStop.push(formatDate(currentYearLastDate))
  // 返回
  return startStop
}

// **时间格式化**
function formatDate(date) {
  var myyear = date.getFullYear()
  var mymonth = date.getMonth() + 1
  var myweekday = date.getDate()
  if (mymonth < 10) {
    mymonth = '0' + mymonth
  }
  if (myweekday < 10) {
    myweekday = '0' + myweekday
  }
  return (myyear + '-' + mymonth + '-' + myweekday)
}

**// **获得本季时间段****
export function getCurrentSeasonArr() {
  return getCurrentSeason()
}

**// 获得本年时间段**
export function getCurrentYearArr() {
  return getCurrentYear()
}

// 获得近7天和近30天的日期
handleDateChange(day) {
  const today = new Date()
  let yesterday = new Date() - 1000 * 60 * 60 * 24
  const time = new Date()
  var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day
  time.setTime(targetday_milliseconds)
  day === -1 ? (yesterday = time) : ''
  const beginDate = this.formatDate(
    time,
    'yyyy-MM-dd'
  )
  const endDate = this.formatDate(
    yesterday,
    'yyyy-MM-dd'
  )
  return {
    beginDate,
    endDate
  }
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值