js 时间处理函数

265 阅读2分钟
var formationTime = {
    /*获取年月日时分秒 周几*/
    getMainTime:function(data) {
        var mainTime = new Date(data);
        var myYear = mainTime.getFullYear();/*获取当前年*/
        var myMonth = mainTime.getMonth()+1;/*获取当前月*/
        var days = mainTime.getDate();/*获取当前天*/
        var H = mainTime.getHours(); //获取系统时,
        var M = mainTime.getMinutes(); //分
        var S = mainTime.getSeconds(); //秒
        var Week = mainTime.getDay();/*获取本周第几天*/
        var WeekStr="";
        if (Week == 0) {
            WeekStr = "星期日";
        } else if (Week == 1) {
            WeekStr = "星期一";
        } else if (Week == 2) {
            WeekStr = "星期二";
        } else if (Week == 3) {
            WeekStr = "星期三";
        } else if (Week == 4) {
            WeekStr = "星期四";
        } else if (Week == 5) {
            WeekStr = "星期五";
        } else if (Week == 6) {
            WeekStr = "星期六";
        }
        return myYear+'年'+myMonth+'月'+days+'日'+H+'时'+M+'分'+S+'秒 '+WeekStr;
    },
    /*获取一个月所有天数*/
    getMothDays:function(date){
        var myDate = new Date(date);
        var myMonth = myDate.getMonth()+1;/*获取当前月*/
        var myYear = myDate.getFullYear();/*获取当前年*/
        var monthDays = new Date(myYear,myMonth,0);
        var days = monthDays.getDate(); 
        return days;
    },
    /*获取季度 data2可选参数,用来获取是否当前季度*/
    getQuarter:function (date,data2) {
        var myDate = new Date(date);
        var month = myDate.getMonth()+1;/*获取当前月*/
        var Quarter = Math.ceil(month/3);/*获取当前第几季度*/
        var QuarterStart = Quarter*3-2;/*获取当前季度开始月*/
        var QuarterEnd = Quarter*3;/*获取当前季度结束月*/
        var obj ={
                    Quarter:Quarter,
                    QuarterStart:QuarterStart,
                    QuarterEnd:QuarterEnd,
                    QuarterEndDay:formationTime.getMothDays(date)
            };
        if(data2){
                /*今天*/
                var toDate = new Date(data2);
                var tomonth = toDate.getMonth()+1;/*获取当前月*/
                var toQuarter = Math.ceil(tomonth/3);/*获取当前季度*/
                var isToQuarter=toQuarter==Quarter;
                //是否当前季度
                obj.isToQuarter = isToQuarter;
        }
        return obj;
    },
    /*获取周*/
    getWeekDate:function (date,data2) {
        var myDate = new Date(date);
        var myDay = myDate.getDate();/*获取当前天*/
        var myDayOfWeek = myDate.getDay();/*获取本周第几天*/
        var myMonth = myDate.getMonth();/*获取当前月*/
        var myYear = myDate.getFullYear();/*获取当前年*/
        var weekStartDate = new Date(myYear,myMonth,myDay-myDayOfWeek+1);
        var weekEndDate = new Date(myYear,myMonth,myDay+(6-myDayOfWeek)+1);
        /*获取当前第几周*/
        var time = new Date(myYear,0,1);
        var day1 = myDayOfWeek;
        var day2 = time.getDay();
        if(day1==0){
            day1 = 7;
        }
        if(day2==0){
            day2 = 7;
        }
        var days = Math.round((myDate.getTime()-time.getTime()+(day2-day1)*(24*60*60*1000))/86400000);
        var weekNum = Math.ceil(days/7)+1;
        var obj ={
            weekStartDate:weekStartDate,//周开始
            weekEndDate:weekEndDate,//周结束
            weekNum:weekNum,//今年第多少周
        }
        if(data2){
                        /*获取第几周*/
                var toDate = new Date(data2);
                var toDayOfWeek = toDate.getDay();
                var toYear = myDate.getFullYear();/*获取当前年*/
                var todata2 = new Date(toYear,0,1);
                var today1 = toDayOfWeek;
                var today2 = todata2.getDay();
                if(today1==0){
                    today1 = 7;
                }
                if(today2==0){
                    today2 = 7;
                }
                var todays = Math.round((toDate.getTime()-todata2.getTime()+(today2-today1)*(24*60*60*1000))/86400000);
                var toweekNum = Math.ceil(todays/7)+1;
                //是否当前周
                obj.isToWeek = toweekNum==weekNum;
        }
        return obj;
    },
    /*获取月*/
    getMonth:function (date,data2) {
        var myDate = new Date(date);
        var myMonth = myDate.getMonth()+1;/*获取当前月*/
        var myYear = myDate.getFullYear();/*获取当前年*/
        var obj ={
            Month:myMonth,
            Year:myYear,
            Days:formationTime.getMothDays(date)
        }
        if(data2){
                /*今天*/
                var toDate = new Date(data2);
                var toMonth = toDate.getMonth()+1;/*获取当前月*/
                var toYear = toDate.getFullYear();/*获取当前年*/
                var istoMonth = new Date(toYear+'-'+toMonth).getTime()==new Date(myYear+'-'+myMonth).getTime();
                //是否同一个月
                obj.isToMonth = istoMonth;
        }
        return obj;
    },
    /*判断是否周日*/
    isFirsDayOfWeek:function(date){
        var isWeek = false;
        if(new Date(date).getDay()==0){
            isWeek = true;
        }
        return isWeek;
    },
    /*判断是否周六*/
    isLastDayOfWeek:function(date){
        var isWeek = false;
        if(new Date(date).getDay()==6){
            isWeek = true;
        }
        return isWeek;
    }
};