獲取選擇的當前天、周、月、年的時間段
阿新 • • 發佈:2017-05-06
日期格式化 sta ret date fwe 設置 .info || ted
/** * Created by Administrator on 2017/5/6. */ /** * options:{"type":2,"date":"2017-5-6","connect":"-"} * type:"1" 獲取當天 * type:"2" 獲取本周 * type:"3" 獲取本月 * type:"4" 獲取本年 */ function GetDatePeriod(options) { this.options={ date:new Date(), type:1, connect:"-" }; for(var key in options){ if(options[key]!=""){ this.options[key]=options[key]; } } var selD=new Date(this.options.date); var selDayOfWeek=selD.getDay(); var selDate=selD.getDate(); var selMonth=selD.getMonth(); var selYear=selD.getFullYear(); var startDate, endDate; //補齊數位 this.digit = function(num) { return num < 10 ? "0" + (num | 0) :num; }; //判斷閏年 this.isLeap = function(y) { return (y % 100 !== 0 && y % 4 === 0) || (y % 400 === 0); }; //獲取本月天數 this.getDaysNum = function(y, m) { var num = 31; switch (parseInt(m)) { case 2: num = this.isLeap(y) ? 29 : 28; break; case 4: case 6: case 9: case 11: num = 30; break; } return num; }; //日期格式化 this.dateFormat=function(dateSrc){ var connect=this.options.connect; return dateSrc.getFullYear()+connect+this.digit(dateSrc.getMonth()+1)+connect+this.digit(dateSrc.getDate()) }; //1:本日,2:本周,3:本月,4:本年 switch (this.options.type) { case "1": startDate = new Date(selYear, selMonth, selDate); endDate = new Date(selYear, selMonth, selDate); break; case "2": if (selDayOfWeek > 0) { startDate = new Date(selYear, selMonth, selDate - selDayOfWeek + 1); endDate = new Date(selYear, selMonth, selDate + (7 - selDayOfWeek)); } else { startDate = new Date(selYear, selMonth, selDate - selDayOfWeek - 6); endDate = new Date(selYear, selMonth, selDate); } break; case "3": startDate = new Date(selYear, selMonth, 1); endDate = new Date(selYear, selMonth,this.getDaysNum(selYear,selMonth+1)); break; case "4": startDate = new Date(selYear, 0, 1); endDate = new Date(selYear, 11, 31); break; } this.periodOutput=function(){ //返回本周,月,年的起止時間 startDate=this.dateFormat(startDate);endDate=this.dateFormat(endDate); //如果選擇的時間大於當前時間則把endDate設置為當前時間 var curDate=this.dateFormat(new Date()); endDate=new Date(endDate).getTime()>new Date(curDate).getTime()?curDate:endDate; return { startDate:startDate, endDate:endDate } } }; console.info("當前周時間段",new GetDatePeriod({type:"2",date:"2017-05-06",‘connect‘:‘/‘}).periodOutput());
獲取選擇的當前天、周、月、年的時間段