JavaScript 获取今天、昨天、本周、本季度、本月、上月的
2019-04-23 本文已影响0人
fourn熊能
上代码:
var now = new Date()
var lastDay = new Date()
lastDay.setDate(lastDay.getDate() - 1)
var nowDayOfWeek = now.getDay()
var nowDay = now.getDate()
var nowMonth = now.getMonth()
var nowYear = now.getYear()
nowYear += (nowYear < 2000) ? 1900 : 0
var lastMonthDate = new Date()
lastMonthDate.setDate(1)
lastMonthDate.setMonth(lastMonthDate.getMonth() - 1)
var lastMonth = lastMonthDate.getMonth()
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)
}
function getMonthDays(myMonth) {
var monthStartDate = new Date(nowYear, myMonth, 1)
var monthEndDate = new Date(nowYear, myMonth + 1, 1)
var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24)
return days
}
function getWeekStartDate() {
var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek)
return formatDate(weekStartDate)
}
function getWeekEndDate() {
var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek))
return formatDate(weekEndDate)
}
function getLastWeekStartDate() {
var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 7)
return formatDate(weekStartDate)
}
function getLastWeekEndDate() {
var weekEndDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 1)
return formatDate(weekEndDate)
}
function getMonthStartDate() {
var monthStartDate = new Date(nowYear, nowMonth, 1)
return formatDate(monthStartDate)
}
function getMonthEndDate() {
var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth))
return formatDate(monthEndDate)
}
function getLastMonthStartDate() {
var lastMonthStartDate = new Date(nowYear, lastMonth, 1)
return formatDate(lastMonthStartDate)
}
function getLastMonthEndDate() {
var lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth))
return formatDate(lastMonthEndDate)
}
调用:
switch (val) {
case '全程':
this.date.start = ''
this.date.end = ''
break
case '今日':
this.date.start = formatDate(now)
this.date.end = formatDate(now)
break
case '昨日':
this.date.start = formatDate(lastDay)
this.date.end = formatDate(lastDay)
break
case '本周':
this.date.start = getWeekStartDate()
this.date.end = getWeekEndDate()
break
case '上周':
this.date.start = getLastWeekStartDate()
this.date.end = getLastWeekEndDate()
break
case '本月':
this.date.start = getMonthStartDate()
this.date.end = getMonthEndDate()
break
case '上月':
this.date.start = getLastMonthStartDate()
this.date.end = getLastMonthEndDate()
break
}