/**
* 获取本周、本季度、本月、上月的开端日期、停止日期
*/
var now = new Date(); //当前日期
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 lastYear = lastMonthDate.getYear();
var lastMonth = lastMonthDate.getMonth();
export const endQuarterMap={"1":"03","2":"06","3":"09","4":"12"}
export const beginQuarterMap={"1":"01","2":"04","3":"07","4":"10"}
//格局化日期:yyyy-MM-dd
export 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 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;
}
//获得本季度的开端月份
export function getQuarterStartMonth(){
var quarterStartMonth = 0;
if(nowMonth<3){
quarterStartMonth = 0;
}
if(2<nowMonth && nowMonth<6){
quarterStartMonth = 3;
}
if(5<nowMonth && nowMonth<9){
quarterStartMonth = 6;
}
if(nowMonth>8){
quarterStartMonth = 9;
}
return quarterStartMonth;
}
//获得本周的开端日期
export function getWeekStartDate() {
var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
return formatDate(weekStartDate);
}
//获得本周的停止日期
export function getWeekEndDate() {
var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));
return formatDate(weekEndDate);
}
//获得本月的开端日期
export function getMonthStartDate(){
var monthStartDate = new Date(nowYear, nowMonth, 1);
return formatDate(monthStartDate);
}
//获得本月的停止日期
export function getMonthEndDate(){
var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
return formatDate(monthEndDate);
}
//获得上月开端时候
export function getLastMonthStartDate(){
var lastMonthStartDate = new Date(nowYear, lastMonth, 1);
return formatDate(lastMonthStartDate);
}
//获得上月停止时候
export function getLastMonthEndDate(){
var lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth));
return formatDate(lastMonthEndDate);
}
//获得本季度的开端日期
export function getQuarterStartDate(){
var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
return formatDate(quarterStartDate);
}
//或的本季度的停止日期
export function getQuarterEndDate(){
var quarterEndMonth = getQuarterStartMonth() + 2;
var quarterStartDate = new Date(nowYear, quarterEndMonth, getMonthDays(quarterEndMonth));
return formatDate(quarterStartDate);
}
export function getCurrentQuarterNum(month=nowMonth){
var quarterStartMonth = 1;
if(month<4){
quarterStartMonth = 1;
}
if(3<month && month<7){
quarterStartMonth = 2;
}
if(6<month && month<10){
quarterStartMonth = 3;
}
if(month>9){
quarterStartMonth = 4;
}
return quarterStartMonth
}
//获取当前季度
export function getCurrentQuarter(nDate=new Date()){
var quarterStartMonth = getCurrentQuarterNum(nDate.getMonth());
return nDate.getFullYear()+'-'+quarterStartMonth;
}
// 获取上一季度
export function getLastQuarter(){
var quarterNum = getCurrentQuarterNum();
if((quarterNum-1)==0){
return (nowYear-1)+'-'+4
}else{
return nowYear+'-'+(quarterNum-1)
}
}
// 获取间隔季度日期
export function getDifQuarter(dif=-1,nQuarter=getCurrentQuarter()){
let dates=nQuarter.split('-')
let nQuarterNum=Number(dates[1])
let aDif=dif+nQuarterNum
let yDif=parseInt(aDif/4)
let qDif=aDif%4
if(qDif>0){
return (Number(dates[0])+yDif)+'-'+qDif
}else{
return (Number(dates[0])+yDif-1)+'-'+(qDif+4)
}
}
// 获取间隔天数日期
export function getDifDate(dif=-1,nDate=new Date()){
nDate.setMonth(nDate.getMonth()+dif)
return nDate
}
//获取间隔月数日期
export function getDifMonth(dif=-1,nDate=new Date()){
nDate.setMonth(nDate.getMonth()+dif)
return nDate
}
// 获取间隔年数日期
export function getDifYear(dif=-1,nDate=new Date()){
nDate.setFullYear(nDate.getFullYear()+dif)
return nDate
}
//获取当前月份
export function getCurrentMonth(){
return nowYear+'-'+(nowMonth+1)
}
方法列表:
1、格局化日期:yyyy-MM-dd
2、获得某月的天数
3、获得本季度的开端月份
4、获得本周的开端日期
5、获得本周的停止日期
6、获得本月的开端日期
7、获得本月的停止日期
8、获得上月开端时候
9、获得上月停止时候
10、获得本季度的开端日期
11、获得本季度的停止日期
12、获取当前季度
13、获取上一季度
14、获取间隔季度日期
15、获取间隔天数日期
16、获取间隔月数日期
17、获取间隔年数日期
18、获取当前月份
有啥问题可以加微信聊:chenkunlia