博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS获取周、月、季度日期
阅读量:7112 次
发布时间:2019-06-28

本文共 4951 字,大约阅读时间需要 16 分钟。

效果:

代码:

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 }

转载地址:http://zhghl.baihongyu.com/

你可能感兴趣的文章
nim的引用和指针
查看>>
DirectUI: Become windowless
查看>>
Python 数据结构_队列
查看>>
NAS数据迁移初探
查看>>
打破医院围墙 数字化平台之上的想象力
查看>>
Teradata首席分析官Bill Franks:数据分析变革犹如一场工业革命
查看>>
Linux下安装并使用Java开发opencv的配置
查看>>
AdTime: DMC量身定制的企业数据分析师
查看>>
《数字逻辑设计与计算机组成》一2.3 规范表达式
查看>>
借道大数据 互联网基金再探“蓝海”
查看>>
浙江医疗综合体获批 医疗资源也可共享
查看>>
3G/4G调制解调器曝漏洞:可致设备被完全控制
查看>>
你知道你的Mac摄像头正在偷窥你吗?这款工具或许能帮你
查看>>
超干货!一套完整的设计分析思路应该是怎样的?
查看>>
一文深入了解Redis!
查看>>
js判断document.getElementByid("")获得的对象是否存在
查看>>
实用的 Recipes
查看>>
从最大似然到EM算法浅解
查看>>
ionic 拍照、相册并上传至又拍云
查看>>
NIO 理解
查看>>