1 //用于获取日期本周、本月、本季度的js
2 //Author : guanghe
3 //文件引用方法:
4 /**5 * 获取本周、本季度、本月、上月的开始日期、结束日期6 */
7 var now = new Date(); //当前日期
8 var nowDayOfWeek = now.getDay(); //今天本周的第几天
9 var nowDay = now.getDate(); //当前日
10 var nowMonth = now.getMonth(); //当前月
11 var nowYear = now.getYear(); //当前年
12 nowYear += (nowYear < 2000) ? 1900 : 0;13
14 //格式化日期:yyyy-MM-dd
15 functionformatDate(date) {16 var myyear =date.getFullYear();17 var mymonth = date.getMonth() + 1;18 var myweekday =date.getDate();19 if (mymonth < 10) {20 mymonth = "0" +mymonth;21 }22 if (myweekday < 10) {23 myweekday = "0" +myweekday;24 }25 return (myyear + "-" + mymonth + "-" +myweekday);26 }27
28 //获得某月的天数
29 functiongetMonthDays(theYear, theMonth) {30 var monthStartDate = new Date(theYear, theMonth, 1);31 var monthEndDate = new Date(theYear, theMonth + 1, 1);32 var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);33 returndays;34 }35
36 //获得本季度的开始月份
37 functiongetQuarterStartMonth(theMonth) {38 if(!theMonth) {39 theMonth =nowMonth;40 }41 var quarterStartMonth = 0;42 if (theMonth < 3) {43 quarterStartMonth = 0;44 }45 if (2 < theMonth && theMonth < 6) {46 quarterStartMonth = 3;47 }48 if (5 < theMonth && theMonth < 9) {49 quarterStartMonth = 6;50 }51 if (theMonth > 8) {52 quarterStartMonth = 9;53 }54 returnquarterStartMonth;55 }56
57 //获得本周的开始日期
58 functionghGetWeekStartDate() {59 var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1);60 returnformatDate(weekStartDate);61 }62 //获得本周的结束日期
63 functionghGetWeekEndDate() {64 var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek) + 1);65 returnformatDate(weekEndDate);66 }67
68 //获得下周的开始日期
69 functionghGetNextWeekStartDate() {70 var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 7 + 1);71 returnformatDate(weekStartDate);72 }73
74 //获得本月的开始日期
75 functionghGetMonthStartDate() {76 var monthStartDate = new Date(nowYear, nowMonth, 1);77 returnformatDate(monthStartDate);78 }79
80 //获得本月的结束日期
81 functionghGetMonthEndDate() {82 var monthEndDate = newDate(nowYear, nowMonth, getMonthDays(nowYear, nowMonth));83 returnformatDate(monthEndDate);84 }85
86 //获得下月开始时间
87 functionghGetNextMonthStartDate() {88 var theYear =nowYear;89 var theMonth = nowMonth + 1;90 if(theMonth == 12) {91 theYear += 1;92 theMonth = 0;93 }94 var nextMonthStartDate = new Date(theYear, theMonth, 1);95 returnformatDate(nextMonthStartDate);96 }97
98 //获得本季度的开始日期
99 functionghGetQuarterStartDate() {100 var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);101 returnformatDate(quarterStartDate);102 }103
104 //或的本季度的结束日期
105 functionghGetQuarterEndDate() {106 var quarterEndMonth = getQuarterStartMonth() + 2;107 var quarterStartDate = newDate(nowYear, quarterEndMonth,108 getMonthDays(nowYear, quarterEndMonth));109 returnformatDate(quarterStartDate);110 }111
112 functionghGetNextQuarterStartDate() {113 var theYear =nowYear;114 var theQuarterMonth = nowMonth + 3;115 if(theQuarterMonth > 11) {116 theYear += 1;117 theQuarterMonth -= 12;118 }119 var quarterStartDate = new Date(theYear, getQuarterStartMonth(theQuarterMonth), 1);120 returnformatDate(quarterStartDate);121 }122
123 //设置查询时间
124 functionghSetDate(areaName, inputName, id) {125 var date =$(areaName).children(inputName);126 var dateStart = date.eq(0);127 var dateEnd = date.eq(1);128 switch(id) {129 case "cur_week":130 dateStart.val(ghGetWeekStartDate());131 dateEnd.val(ghGetNextWeekStartDate());132 break;133 case "cur_month":134 dateStart.val(ghGetMonthStartDate());135 dateEnd.val(ghGetNextMonthStartDate());136 break;137 case "cur_quarter":138 dateStart.val(ghGetQuarterStartDate());139 dateEnd.val(ghGetNextQuarterStartDate());140 break;141 }142 }143
144 //初始化时间区域选择控件
145 //name:时间组件选择器name
146 functionghInitWidget(name) {147 var areaName = "#" + name + "_date";148 var inputName = "input[name='" + name + "']";149 var str = $("本周 本月 本季度 自定义 ");150 $(areaName).before(str);151 //点击区域按钮,高亮并搜索
152 $("#theLabel a").click(function() {153 $("#theLabel a").css("color", "#337ab7");154 $(this).css("color", "red");155 ghSetDate(areaName, inputName, this.id);156 $(":button.btn-search1").click();157 });158 //点击日期框,区域选择按钮取消高亮
159 $(areaName).children(inputName).click(function() {160 $("#theLabel a").css("color", "#337ab7");161 });162 }