js package to get the start date, end date, and weekly date array of this week, this quarter, this month, and last month

Personal summary

/**
* 获取本周、本季度、本月、上月的开始日期、结束日期
*/
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();

//格式化日期:yyyy-MM-dd 
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 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; 
} 

//获得本周的开始日期 
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 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); 
}

//获得本季度的开始日期 
function getQuarterStartDate(){ 

var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1); 
return formatDate(quarterStartDate); 
} 

//或的本季度的结束日期 
function getQuarterEndDate(){ 
var quarterEndMonth = getQuarterStartMonth() + 2; 
var quarterStartDate = new Date(nowYear, quarterEndMonth, getMonthDays(quarterEndMonth)); 
return formatDate(quarterStartDate); 
}

Case pictures cited in the project;

Insert picture description hereInsert picture description here

Or take an array of days of the week
/**
 * 获取每周的日期和星期的数组
 * @param {date} 传一个日期 yyyy-mm-dd 格式 将会返回日期的后七天的数组
 */
getWeekDateArr: function (date) {
    /* 得到当前日期的时间戳 */
    // const timestamp = Date.now();
    var stringTime = date;
    var timestamp = Date.parse(new Date(stringTime));
    // const timestamp = new Date(2019, 7, 30, 0, 0, 0, 0).getTime()
    const dateWeek = Array.from(new Array(7)).map((_, i) => {
        /* 得到当前周每一天的时间戳 */
        const weekTimestamp = new Date(timestamp + i * 24 * 60 * 60 * 1000)
        const date = String(weekTimestamp.getFullYear()) + '-' + String(weekTimestamp.getMonth() + 1).padStart(2, '0') + '-' + String(new Date(weekTimestamp).getDate()).padStart(2, '0');
        /* 得到周几后转换 */
        let week = weekTimestamp.getDay()
        switch (week) {
            case 0:
                week = '周日'
                break
            case 1:
                week = '周一'
                break
            case 2:
                week = '周二'
                break
            case 3:
                week = '周三'
                break
            case 4:
                week = '周四'
                break
            case 5:
                week = '周五'
                break
            case 6:
                week = '周六'
                break
        }
        return {
            date,
            week
        }
    })
    return dateWeek;
    //console.log(dateWeek);
}

Insert picture description here

The API package in the project will be copied later

Reference from: https://www.cnblogs.com/liyixiang/p/6038122.html

Guess you like

Origin blog.csdn.net/weixin_43996999/article/details/97161020