zoukankan      html  css  js  c++  java
  • js获取某周、某月、下月、某季度的开始日期、结束日期及判断日期第几周

    //格式化日期:yyyy-MM-dd   

    function formatDate(date) {    
      var myyear = date.getFullYear();   
      var mymonth = date.getMonth()+1;   
      var myweekday = date.getDate();    
         
      if(mymonth < 10){   
        mymonth = "0" + mymonth;   
      }    
      if(myweekday < 10){   
        myweekday = "0" + myweekday;   
      }   
      return (myyear+"-"+mymonth + "-" + myweekday);    
    }    
       
    //获得某月的天数   
    function getMonthDays(paraYear,paraMonth){   
      var monthStartDate = new Date(paraYear, paraMonth, 1);    
      var monthEndDate = new Date(paraYear, paraMonth + 1, 1);    
      var  days  =  (monthEndDate  -  monthStartDate)/(1000  *  60  *  60  *  24);    
      return  days;    
    }    
       
    //获得某周的开始日期   
    function getWeekStartDate(paraYear,paraMonth,paraDay,paraDayOfWeek) {    
      var weekStartDate = new Date(paraYear, paraMonth, paraDay + 1 - paraDayOfWeek);    
      return formatDate(weekStartDate);   
    }    
       
    //获得某周的结束日期   
    function getWeekEndDate(paraYear,paraMonth,paraDay,paraDayOfWeek) {    
      var weekEndDate = new Date(paraYear, paraMonth, paraDay + (7 - paraDayOfWeek));    
      return formatDate(weekEndDate);   
    }    
       
    //获得某月的开始日期   
    function getMonthStartDate(paraYear,paraMonth){   
      var monthStartDate = new Date(paraYear, paraMonth, 1);    
      return formatDate(monthStartDate);   
    }   
       
    //获得某月的结束日期   
    function getMonthEndDate(paraYear,paraMonth){ 
      var monthEndDate = new Date(paraYear,paraMonth, getMonthDays(paraYear,paraMonth));    
      return formatDate(monthEndDate);   
    }   

    //获得上月开始时间  
    function getLastMonthStartDate(paraYear, lastMonth){  
      var lastMonthStartDate = new Date(paraYear, lastMonth, 1);  
      return formatDate(lastMonthStartDate);   
    }  

    //获得上月结束时间  
    function getLastMonthEndDate(paraYear, lastMonth, lastMonth){  
      var lastMonthEndDate = new Date(paraYear, lastMonth, getMonthDays(lastMonth));  
      return formatDate(lastMonthEndDate);   
    }  
       
    //获得某季度的开始日期   
    function getQuarterStartDate(paraYear,paraSeason){   
      switch (paraSeason){   
        case '1' : return paraYear+"-01-01";
        case '2' : return paraYear+"-04-01";
        case '3' : return paraYear+"-07-01";
        case '4' : return paraYear+"-10-01";
      }
    }   
       
    //获得某季度的结束日期   
    function getQuarterEndDate(paraYear,paraSeason){   
      switch (paraSeason){   
      case '1' : return paraYear+"-03-31";
      case '2' : return paraYear+"-06-30";
      case '3' : return paraYear+"-09-30";
      case '4' : return paraYear+"-12-31";
      }  
    }

      //获取某年某周的开始日期
    function getBeginDateOfWeek(paraYear, weekIndex){
      var firstDay = GetFirstWeekBegDay(paraYear);
      //7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)
      var time=(weekIndex-1)*7*24*3600000;
      var beginDay = firstDay;
      //为日期对象 date 重新设置成时间 time
      beginDay.setTime(firstDay.valueOf()+time);
      return formatDate(beginDay);
    }

      //获取某年某周的结束日期
    function getEndDateOfWeek(paraYear, weekIndex){
      var firstDay = GetFirstWeekBegDay(paraYear);
      //7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)
      var time=(weekIndex-1)*7*24*3600000;
      var weekTime = 6*24*3600000;
      var endDay = firstDay;
      //为日期对象 date 重新设置成时间 time
      endDay.setTime(firstDay.valueOf()+weekTime+time);
      return formatDate(endDay);
    }

      //获取日期为某年的第几周
    function GetWeekIndex(dateobj) {
      var firstDay = GetFirstWeekBegDay(dateobj.getFullYear());
      if (dateobj < firstDay) {
       firstDay = GetFirstWeekBegDay(dateobj.getFullYear() - 1);
      }
      d = Math.floor((dateobj.valueOf() - firstDay.valueOf()) / 86400000);
      return Math.floor(d / 7) + 1; 
    }

      //获取某年的第一天
    function GetFirstWeekBegDay(year) {
      var tempdate = new Date(year, 0, 1);
      var temp = tempdate.getDay();
      if (temp == 1){
        return tempdate;
      }
      temp = temp == 0 7 : temp;
      tempdate = tempdate.setDate(tempdate.getDate() + (8 - temp));
      return new Date(tempdate);  
    }

  • 相关阅读:
    java1200_060_把数字格式化为货币字符串
    ccf_201712-02
    ccf_201712-01
    算法笔记-----单源最短路径之Bellman-Ford算法
    算法笔记-----贪心算法----加里比海盗船--最优装载问题
    算法笔记-----最优二叉搜索树
    SHTSC2017酱油记
    并不能来一发50AC
    【bzoj4514】: [Sdoi2016]数字配对 图论-费用流
    【bzoj1066】: [SCOI2007]蜥蜴 图论-最大流
  • 原文地址:https://www.cnblogs.com/wuhaidong-me/p/8119656.html
Copyright © 2011-2022 走看看