zoukankan      html  css  js  c++  java
  • 获取选择的当前天、周、月、年的时间段

    /**
     * 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());
    

      

  • 相关阅读:
    时间复杂度
    随机数生成
    promise封装异步函数
    谷歌浏览器占用cpu过高,如何解决?
    大二层网络
    kubernetes 二进制安装部署手册
    SeaWeedfs 分布式网络文件存储介绍
    seaweedfs基本使用
    SeaweedFS基本介绍
    Linux下shell通用脚本启动jar(微服务)
  • 原文地址:https://www.cnblogs.com/leyi/p/6816654.html
Copyright © 2011-2022 走看看