最近在做项目的时候,遇到了如标题所示的时间获取需求,今天总结给大家,希望对大家有所帮助,废话不多说,上代码~~~~~
// 今天昨天明天时间处理 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>