獲取本週、本月、本季度、半年的時間

/**
 * @file 日期選擇(獲取今天、本週、本季度、本月、半年、一年的開端日期、停止日期 )
 * @author 何文林
 */

define(function (require) {
    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 choiceData = {
        // 格局化日期:yyyy-MM-dd
        formatDate: function (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);
        },
        // 獲得某月的天數
        getMonthDays: function (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;
        },
        // 獲得本季度的開端月份
        getQuarterStartMonth: function () {
            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;
        },
        // 獲得今天開始/結束時間
        today: function () {
            return this.formatDate(now);
        },
        // 獲得本週的開端日期
        getWeekStartDate: function () {
            var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
            return this.formatDate(weekStartDate);
        },
        // 獲得本週的停止日期
        getWeekEndDate: function  () {
            var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));
            return this.formatDate(weekEndDate);
        },
        // 獲得本月的開端日期
        getMonthStartDate: function () {
            var monthStartDate = new Date(nowYear, nowMonth, 1);
            return this.formatDate(monthStartDate);
        },
        // 獲得本月的停止日期
        getMonthEndDate: function () {
            var monthEndDate = new Date(nowYear, nowMonth, this.getMonthDays(nowMonth));
            return this.formatDate(monthEndDate);
        },
        // 獲得本季度的開端日期
        getQuarterStartDate: function () {
            var quarterStartDate = new Date(nowYear, this.getQuarterStartMonth(), 1);
            return this.formatDate(quarterStartDate);
        },
        // 獲得本季度的停止日期
        getQuarterEndDate: function () {
            var quarterEndMonth = this.getQuarterStartMonth() + 2;
            var quarterStartDate = new Date(nowYear, quarterEndMonth, this.getMonthDays(quarterEndMonth));
            return this.formatDate(quarterStartDate);
        },
        //  獲得半年開始
        getQuarterHalfYearStart: function () {
            var str = '';
            if (nowMonth <= 6) { //
                str = nowYear + '-01-01';
            }
            else {
                str = nowYear + '-07-30';
            }
            return str;
        },
        //  獲得半年結束
        getQuarterHalfYearEnd: function () {
            var str = '';
            if (nowMonth <= 6) { //
                str = nowYear + '-06-30';
            }
            else {
                str = nowYear + '-12-31';
            }
            return str;
        },
        //  獲得一年的開始時間
        getQuarterYearStart: function () {
            return nowYear + '-01-01';
        },
        //  獲得一年的結束時間
        getQuarterYearEnd: function () {
            return nowYear + '-12-31';
        }

    };
    return choiceData;
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章