js获取本季度、上季度、下季度;今年、去年、明年;本月、上月、下月;本周、上周、下周的开始结日期;今天、昨天、明天的日期,看这一篇文章足矣

最近在做项目的时候,遇到了如标题所示的时间获取需求,今天总结给大家,希望对大家有所帮助,废话不多说,上代码~~~~~

// 今天昨天明天时间处理 v==3为昨天。v==6为今天。v==9为明天
function getDay(v) {
  let b = 24 * 60 * 60 * 1000 //一天的时间
  let day = new Date() //当天的时间
  v == 3 ? day.setTime(day.getTime() - b) : v == 6 ? day.setTime(day.getTime()) : day.setTime(day.getTime() + b)
  let dayMon = day.getMonth() + 1 >= 10 ? day.getMonth() + 1 : '0' + (day.getMonth() + 1)
  let dayDat = day.getDate() + 1 >= 10 ? day.getDate() : '0' + day.getDate()
  let s = day.getFullYear() + '-' + dayMon + '-' + dayDat
  return s
}
//获取本、上、下周开始结束时间
/**
 * @description 得到本、上、下周的起始、结束日期
 * @param {Number} n 不传或0代表本周,-1代表上周,1代表下周
 */
function getWeek(n) {
  var now = new Date()
  var year = now.getFullYear()
  var month = now.getMonth() + 1
  var day = now.getDay() //返回星期几的某一天;
  n = day == 0 ? n + 6 : n + (day - 1)
  now.setDate(now.getDate() - n)
  var date = now.getDate()
  var s = year + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
  return s
}
//获取本、上、下月开始结束时间
/**
 * @description 得到本月、上月、下月的起始、结束日期
 * @param {Number} n 不传或0代表本月,-1代表上月,1代表下月
 */

//月开始时间
function getfirstMonth(n) {
  return Timetools(1, n)
}
//月结束时间
function getlastMonth(n) {
  return Timetools(0, n)
}
function Timetools(num, n) {
  var now = new Date()
  var year = now.getFullYear()
  var month = now.getMonth() + 1 + n
  var date = new Date(year, month, num).getDate()
  var s = year + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
  return s
}
//计算本上下季度
/*type='s'为开始时间,type='e'季度结束时间
  n=0,-1,1(本,上,下季度)
*/
function getQuater(type, n) {
  let currentQuarter = moment().quarter() // 当前是第几季度
  let currentYear = moment().year() // 当前年
  let getQuar = currentQuarter + n
  // 本季度开始
  if (type == 's') {
    let startMoth = moment(moment(currentYear + '-01-01').toDate()).quarter(getQuar)
    return moment(startMoth).format('YYYY-MM-DD')
  } else if (type == 'e') {
    let endMonth = 3 * parseInt(getQuar) //当季度最后一个月
    /* 对月数进行格式化 */
    if (endMonth < 10) endMonth = '0' + endMonth
    else endMonth += ''
    let endMonthDays = moment(currentYear + '-' + endMonth).daysInMonth() // 末尾月天数
    let endDays = currentYear + '-' + endMonth + '-' + endMonthDays //完整年月日整合
    return moment(endDays).format('YYYY-MM-DD')
  }
}
/**
 * @description 得到今年、去年、明年的开始、结束日期
 * @param {String} type 有两种选择,"s"代表开始,"e"代表结束
 * @param {Number} dates 不传或0代表今年,-1代表去年,1代表明年
 */
function getYear(type, dates) {
  const dd = new Date()
  const n = dates || 0
  const year = dd.getFullYear() + Number(n)
  let day
  if (type === 's') {
    day = `${year}-01-01`
  }
  if (type === 'e') {
    day = `${year}-12-31`
  }
  if (!type) {
    day = `${year}-01-01/${year}-12-31`
  }
  return day
}

注意:文中类似moment(endDays).format('YYYY-MM-DD')的代码,是小编引用的格式化时间的moment.js库文件,小伙伴也可以使用其他时间格式的方法,具体使用:

//vue中安装
npm install moment --save 或
yarn add moment --save

在要使用的vue文件中引入

//我这儿使用的是局部使用,大家也可以全局引入
<script>
 </template>
  </div>
        .......
  </div>
</template>
<script>

import moment from ‘moment’

export default {}

</script>

<style scoped lang="less">
<style>

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值