效果:
代码:
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 function formatDate(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 function getMonthDays(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 return days; 34 } 35 36 //获得本季度的开始月份 37 function getQuarterStartMonth(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 return quarterStartMonth; 55 } 56 57 //获得本周的开始日期 58 function ghGetWeekStartDate() { 59 var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1); 60 return formatDate(weekStartDate); 61 } 62 //获得本周的结束日期 63 function ghGetWeekEndDate() { 64 var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek) + 1); 65 return formatDate(weekEndDate); 66 } 67 68 //获得下周的开始日期 69 function ghGetNextWeekStartDate() { 70 var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 7 + 1); 71 return formatDate(weekStartDate); 72 } 73 74 //获得本月的开始日期 75 function ghGetMonthStartDate() { 76 var monthStartDate = new Date(nowYear, nowMonth, 1); 77 return formatDate(monthStartDate); 78 } 79 80 //获得本月的结束日期 81 function ghGetMonthEndDate() { 82 var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowYear, nowMonth)); 83 return formatDate(monthEndDate); 84 } 85 86 //获得下月开始时间 87 function ghGetNextMonthStartDate() { 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 return formatDate(nextMonthStartDate); 96 } 97 98 //获得本季度的开始日期 99 function ghGetQuarterStartDate() {100 var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);101 return formatDate(quarterStartDate);102 }103 104 //或的本季度的结束日期105 function ghGetQuarterEndDate() {106 var quarterEndMonth = getQuarterStartMonth() + 2;107 var quarterStartDate = new Date(nowYear, quarterEndMonth,108 getMonthDays(nowYear, quarterEndMonth));109 return formatDate(quarterStartDate);110 }111 112 function ghGetNextQuarterStartDate() {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 return formatDate(quarterStartDate);121 }122 123 //设置查询时间124 function ghSetDate(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:时间组件选择器name146 function ghInitWidget(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 }