在js中如何获取上一个季度的开始,结束日期

JavaScript07

在js中如何获取上一个季度的开始,结束日期,第1张

var y = new Date().getFullYear()  //当前年份

var m = new Date().getMonth()  //当前月份

var q = parseInt(m / 3)  //当前季度

var qs = new Date(y, (q - 1) * 3, 1)  //上一季度的开始日期

var qe = new Date(y, q * 3, 0)  //上一季度的结束日期

前言:需求里面有,做了就记录一下

第一种:获取当前月 当前周 的第一天 时分秒都为0,最后一天时分秒为23:59:59

ps:如果想获得指定日期的当前周,new Date('2020-1-2') 传参就可以了

//获取当前周

getTime(){

var date = new Date()

// 本周一的日期

date.setDate(date.getDate() - date.getDay() + 1)

var begin = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " 00:00:00"

// 本周日的日期

date.setDate(date.getDate() + 6)

var end = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " 23:59:59"

let timeInfo={

begin:begin,

end:end

}

return timeInfo

}

//获取当前月

getMtime(){

var data=new Date()

data.setDate(1)

data.setHours(0)

data.setSeconds(0)

data.setMinutes(0)

var start = data.getTime()

var currentMonth = data.getMonth()

var nextMonth = ++currentMonth

var nextMonthFirstDay = new Date(

data.getFullYear(),

nextMonth,

1

)

var end = nextMonthFirstDay-1

let timeInfo={

begin: this.timestampToTime(start),//这里调用时间戳转年月日时分秒方法

end: this.timestampToTime(end)

}

return timeInfo

}

//时间戳转年月日时分秒方法

timestampToTime (cjsj) {

var date = new Date(cjsj) //时间戳为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() <10 ? '0'+date.getDate() : date.getDate()) + ' '

var h = (date.getHours() <10 ? '0'+date.getHours() : date.getHours()) + ':'

var m = (date.getMinutes() <10 ? '0'+date.getMinutes() : date.getMinutes())+ ':'

var s = (date.getSeconds() <10 ? '0'+date.getSeconds() : date.getSeconds())

return Y+M+D+h+m+s

}

Moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率。

日常开发中,通常会对时间进行下面这几个操作:比如获取时间,设置时间,格式化时间,比较时间等等

npm install moment 或者 yarn add moment

格式化当前时间:

moment().format("YYYY-MM-DD HH:mm:ss")

当前年:

moment().format("YYYY")

moment().year()// Number

当前月:

moment().format('MM')

当前季度:

moment().quarter()

获取本日截止时间:

moment().startOf('day').format("YYYY-MM-DD HH:mm:ss")

moment().endOf('day').format("YYYY-MM-DD HH:mm:ss")

上一年/下一年:

上一年:moment().add(-1, 'y').format("YYYY")

下一年:moment().add(1, 'y').format("YYYY")

上几年和下几年同理,做momment日期加减,月季度亦同理

上一季度/下一季度:

上一季度:moment().add(-1, 'Q').quarter()

下一季度:moment().add(1, 'Q').quarter()

年开始结束时间:

moment().startOf('year')

moment().endOf('year')

季度开始结束时间:

当前季度的开始结束时间:

moment().startOf('quarter').format("YYYY-MM-DD")

moment().endOf('quarter').format("YYYY-MM-DD")

指定年指定季度的开始结束时间:(某年某季度的开始结束时间)

moment(moment().format("YYYY-02-01")).startOf('quarter').format("YYYY-MM-DD")

moment(moment().format("YYYY-02-01")).endOf('quarter').format("YYYY-MM-DD")

月度开始结束时间

moment().startOf('month')

moment().endOf('month')

昨天: moment().subtract(1, 'days')

明天: moment().add(1, 'days')

前一个月: moment().subtract(1, 'months')

后一个月: moment().add(1, 'months')