JS获取日期时遇到如下需求,根据某年某周获取一周的日期。如开始日期规定为星期四到下一周的星期五为一周。
格式化日期:
functiongetNowFormatDate(theDate) { var day =theDate; var Year = 0; var Month = 0; var Day = 0; var CurrentDate = ""; //初始化时间 Year= day.getFullYear();//ie火狐下都可以 Month= day.getMonth()+1; Day =day.getDate(); CurrentDate += Year + "-"; if (Month >= 10) { CurrentDate += Month + "-"; } else{ CurrentDate += "0" + Month + "-"; } if (Day >= 10) { CurrentDate +=Day ; } else{ CurrentDate += "0" +Day ; } returnCurrentDate; }
// 获取日期范围显示
functiongetDateRange(_year,_week){ varbeginDate; varendDate; if(_year == null || _year == '' || _week == null || _week == ''){ return ""; } beginDate = getXDate(_year,_week,4); endDate = getXDate(_year,(_week - 0 + 1),5); return getNowFormatDate(beginDate) + " 至 "+getNowFormatDate(endDate); }
// 这个方法将取得某年(year)第几周(weeks)的星期几(weekDay)的日期
functiongetXDate(year,weeks,weekDay){ //用指定的年构造一个日期对象,并将日期设置成这个年的1月1日 //因为计算机中的月份是从0开始的,所以有如下的构造方法 var date = new Date(year,"0","1"); //取得这个日期对象 date 的长整形时间 time var time =date.getTime(); //将这个长整形时间加上第N周的时间偏移 //因为第一周就是当前周,所以有:weeks-1,以此类推 //7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒) time+=(weeks-1)*7*24*3600000; //为日期对象 date 重新设置成时间 time date.setTime(time); returngetNextDate(date,weekDay); }
// 这个方法将取得 某日期(nowDate) 所在周的星期几(weekDay)的日期
functiongetNextDate(nowDate,weekDay){ //0是星期日,1是星期一,... weekDay%=7; var day =nowDate.getDay(); var time =nowDate.getTime(); var sub = weekDay-day; if(sub <= 0){ sub += 7; } time+=sub*24*3600000; nowDate.setTime(time); returnnowDate; }
js获取当前指定的前几天的日期
1 functiongetBeforeDate(n){ 2 var n =n; 3 var d = newDate(); 4 var year =d.getFullYear(); 5 var mon=d.getMonth()+1; 6 var day=d.getDate(); 7 if(day <=n){ 8 if(mon>1) { 9 mon=mon-1; 10 } 11 else{ 12 year = year-1; 13 mon = 12; 14 } 15 } 16 d.setDate(d.getDate()-n); 17 year =d.getFullYear(); 18 mon=d.getMonth()+1; 19 day=d.getDate(); 20 s = year+"-"+(mon<10?('0'+mon):mon)+"-"+(day<10?('0'+day):day); 21 returns; 22 } 23 console.log(getBeforeDate(1));//昨天的日期 24 console.log(getBeforeDate(7));//前七天的日期