****/** *
* 获得当前时间
*/****
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
}
},