js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
js获取本周、上周、本月、上月、本季度、上季度的开始结束日期
/** *获取本周、本季度、本月、上月的开始日期、结束日期 */ varnow=newDate();//当前日期 varnowDayOfWeek=now.getDay();//今天本周的第几天 varnowDay=now.getDate();//当前日 varnowMonth=now.getMonth();//当前月 varnowYear=now.getYear();//当前年 nowYear+=(nowYear<2000)?1900:0;// varlastMonthDate=newDate();//上月日期 lastMonthDate.setDate(1); lastMonthDate.setMonth(lastMonthDate.getMonth()-1); varlastYear=lastMonthDate.getYear(); varlastMonth=lastMonthDate.getMonth(); //格式化日期:yyyy-MM-dd functionformatDate(date){ varmyyear=date.getFullYear(); varmymonth=date.getMonth()+1; varmyweekday=date.getDate(); if(mymonth<10){ mymonth="0"+mymonth; } if(myweekday<10){ myweekday="0"+myweekday; } return(myyear+"-"+mymonth+"-"+myweekday); } //获得某月的天数 functiongetMonthDays(myMonth){ varmonthStartDate=newDate(nowYear,myMonth,1); varmonthEndDate=newDate(nowYear,myMonth+1,1); vardays=(monthEndDate-monthStartDate)/(1000*60*60*24); returndays; } //获得本季度的开始月份 functiongetQuarterStartMonth(){ varquarterStartMonth=0; if(nowMonth<3){ quarterStartMonth=0; } if(28){ quarterStartMonth=9; } returnquarterStartMonth; } //获得本周的开始日期 functiongetWeekStartDate(){ varweekStartDate=newDate(nowYear,nowMonth,nowDay-nowDayOfWeek); returnformatDate(weekStartDate); } //获得本周的结束日期 functiongetWeekEndDate(){ varweekEndDate=newDate(nowYear,nowMonth,nowDay+(6-nowDayOfWeek)); returnformatDate(weekEndDate); } //获得上周的开始日期 functiongetLastWeekStartDate(){ varweekStartDate=newDate(nowYear,nowMonth,nowDay-nowDayOfWeek-7); returnformatDate(weekStartDate); } //获得上周的结束日期 functiongetLastWeekEndDate(){ varweekEndDate=newDate(nowYear,nowMonth,nowDay-nowDayOfWeek-1); returnformatDate(weekEndDate); } //获得本月的开始日期 functiongetMonthStartDate(){ varmonthStartDate=newDate(nowYear,nowMonth,1); returnformatDate(monthStartDate); } //获得本月的结束日期 functiongetMonthEndDate(){ varmonthEndDate=newDate(nowYear,nowMonth,getMonthDays(nowMonth)); returnformatDate(monthEndDate); } //获得上月开始时间 functiongetLastMonthStartDate(){ varlastMonthStartDate=newDate(nowYear,lastMonth,1); returnformatDate(lastMonthStartDate); } //获得上月结束时间 functiongetLastMonthEndDate(){ varlastMonthEndDate=newDate(nowYear,lastMonth,getMonthDays(lastMonth)); returnformatDate(lastMonthEndDate); } //获得本季度的开始日期 functiongetQuarterStartDate(){ varquarterStartDate=newDate(nowYear,getQuarterStartMonth(),1); returnformatDate(quarterStartDate); } //或的本季度的结束日期 functiongetQuarterEndDate(){ varquarterEndMonth=getQuarterStartMonth()+2; varquarterStartDate=newDate(nowYear,quarterEndMonth, getMonthDays(quarterEndMonth)); returnformatDate(quarterStartDate); }
js计算月/周的第一天和最后一天
因为项目开发中遇到需要向后台传本周的开始和结束时间,以及上一周的起止时间,就琢磨了半天,总算写出来一套,写篇文章是为了方便自己记忆,也是分享给需要的人,水平有限,写的不好请见谅:
getDateStr3函数是为了把时间对象转变为yy-mm-dd的字符串,方便传值;
getWeekStartAndEnd函数是获取周的起止时间,并且用getDateStr3转换成字符串放到数组中,其中参数0代表当前周,-1代表前一周,-2代表上上周,以此类推,反过来也可以1代表下一周;
getMonthStartAndEnd函数是获取月的起止时间,传参同上
//获取当前日期yy-mm-dd //date为时间对象 functiongetDateStr3(date){ varyear=""; varmonth=""; varday=""; varnow=date; year=""+now.getFullYear(); if((now.getMonth()+1)<10){ month="0"+(now.getMonth()+1); }else{ month=""+(now.getMonth()+1); } if((now.getDate())<10){ day="0"+(now.getDate()); }else{ day=""+(now.getDate()); } returnyear+"-"+month+"-"+day; } /** *获得相对当前周AddWeekCount个周的起止日期 *AddWeekCount为0代表当前周为-1代表上一个周为1代表下一个周以此类推 ***/ functiongetWeekStartAndEnd(AddWeekCount){ //起止日期数组 varstartStop=newArray(); //一天的毫秒数 varmillisecond=1000*60*60*24; //获取当前时间 varcurrentDate=newDate(); //相对于当前日期AddWeekCount个周的日期 currentDate=newDate(currentDate.getTime()+(millisecond*7*AddWeekCount)); //返回date是一周中的某一天 varweek=currentDate.getDay(); //返回date是一个月中的某一天 varmonth=currentDate.getDate(); //减去的天数 varminusDay=week!=0?week-1:6; //获得当前周的第一天 varcurrentWeekFirstDay=newDate(currentDate.getTime()-(millisecond*minusDay)); //获得当前周的最后一天 varcurrentWeekLastDay=newDate(currentWeekFirstDay.getTime()+(millisecond*6)); //添加至数组 startStop.push(getDateStr3(currentWeekFirstDay)); startStop.push(getDateStr3(currentWeekLastDay)); returnstartStop; } /** *获得相对当月AddMonthCount个月的起止日期 *AddMonthCount为0代表当月为-1代表上一个月为1代表下一个月以此类推 ****/ functiongetMonthStartAndEnd(AddMonthCount){ //起止日期数组 varstartStop=newArray(); //获取当前时间 varcurrentDate=newDate(); varmonth=currentDate.getMonth()+AddMonthCount; if(month<0){ varn=parseInt((-month)/12); month+=n*12; currentDate.setFullYear(currentDate.getFullYear()-n); } currentDate=newDate(currentDate.setMonth(month)); //获得当前月份0-11 varcurrentMonth=currentDate.getMonth(); //获得当前年份4位年 varcurrentYear=currentDate.getFullYear(); //获得上一个月的第一天 varcurrentMonthFirstDay=newDate(currentYear,currentMonth,1); //获得上一月的最后一天 varcurrentMonthLastDay=newDate(currentYear,currentMonth+1,0); //添加至数组 startStop.push(getDateStr3(currentMonthFirstDay)); startStop.push(getDateStr3(currentMonthLastDay)); //返回 returnstartStop; }
好了这篇文章就介绍到这了