• js获取本月、三个月、今年的日期插件dateHelp


    最近看了一些关于面向对象的知识,最近工作中在做统计查询的时候需要用到本月、近三个月、今年的日期范围,所以下面用用面向对象的思想写了一个获取日期的插件,大家可以借鉴使用。

    直接通过new DateHelp就可以调用了

    var myDate = new DateHelp({
    date:'2015-02-01',//从此日期开始计算
    format:'yyyy/MM/dd'
    });

    myDate.getThisMonth();
    myDate.getThreeMonth();
    myDate.getThisYear();

    dateHelp.js插件

    /**
     * 通过调用可以获取本月,近三个月,今年的日期
     * @param obj
     * @constructor
     */
    function DateHelp(obj) {
        /*var obj = {
         date:'2015-02-01',//从此日期开始计算
         type:'month',//以年月日向前计算:年(year),月(month),日(day)
         value:'14',//向前计算的数值,年月日
         format:'yyyy/mm/dd'//日期格式
         }*/
    
        this.date = obj.date;
        this.type = obj.type;
        this.value = obj.value == undefined ? obj.value : 0;
        this.format = obj.format == undefined ? obj.format: 'yyyy/MM/dd';
    
        //日期和非日期格式获取年月日
        if (this.date instanceof Date){
            //处理传进来的是日期函数的
    
            this.year = this.date.getFullYear();
            this.month = this.date.getMonth()+1;
            this.day = this.date.getDate();
        }else{
            //处理传入的是非日期函数的
    
            this.year = this.date.substr(0, 4);
            this.month = this.date.substr(5, 2);
            this.day = this.date.substr(8, 2);
        }
    
    }
    
    DateHelp.prototype.beforeDate = function(type, value){
    
        var _type = type || this.type,
            _value = value || this.value,
            _year = this.year,
            _month = this.month,
            _day = this.day;
    
        if (_type == 'year' || _type == '年'){
            _year -= _value;
        }else if (_type == 'month' || _type == '月'){
            _year -= parseInt(_value / 12);
            _month -= _value % 12;
            if(_month <= 0){
                _year -= 1;
                _month += 12;
            }
        }else if (_type == 'day' || _type == '日'){
    
        }else {
    
        }
    
        var date = new Date(_year, _month - 1, _day)
        return this.formatDate(date, this.format);
    }
    
    DateHelp.prototype.formatDate = function(date,fmt){
    
        var o = {
            "M+" : date.getMonth()+1,                 //月份
            "d+" : date.getDate(),                    //
            "h+" : date.getHours(),                   //小时
            "m+" : date.getMinutes(),                 //
            "s+" : date.getSeconds(),                 //
            "q+" : Math.floor((date.getMonth()+3)/3), //季度
            "S"  : date.getMilliseconds()             //毫秒
        };
        if(/(y+)/.test(fmt))
            fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
        for(var k in o)
            if(new RegExp("("+ k +")").test(fmt))
                fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
        return fmt;
    }
    
    DateHelp.prototype.getThisMonth = function() {
    
        var first = new Date(this.year, this.month - 1);
        var last = new Date(this.year, this.month, 0);
    
        return this.formatDate(first, this.format) + " - " + this.formatDate(last, this.format);
    }
    
    DateHelp.prototype.getThreeMonth = function() {
    
        return this.beforeDate('month', 3) + " - " + this.beforeDate('day', 0);
    }
    
    DateHelp.prototype.getThisYear = function() {
    
        var first = new Date(this.year, 0, 1);
        var last = new Date(this.year, 11, 31);
    
        return this.formatDate(first, this.format) + " - " + this.formatDate(last, this.format);
    }
    
    
    /*
    //示例
    var myDate = new DateHelp({
        date:'2015-02-01',//从此日期开始计算
        format:'yyyy/MM/dd'
    });
    
    console.log(myDate.getThisMonth());
    console.log(myDate.getThreeMonth());
    console.log(myDate.getThisYear());*/

    html测试代码

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <script src="myJs/dateHelp.js"></script>
    </head>
    <body>
    
    
    <script>
    
        var myDate = new DateHelp({
            date:new Date(),//从此日期开始计算
            format:'yyyy/MM/dd'
        });
    
        console.log(myDate.getThisMonth());
        console.log(myDate.getThreeMonth());
        console.log(myDate.getThisYear());
    </script>
    </body>
    </html>
  • 相关阅读:
    Flask、Vue部署总结
    Recat教程(二)
    C第一个程序
    React教程(一)
    Flask+uwsgi+nginx 部署
    使用Dockerfile部署简单的应用
    Typescript搭建开发环境
    Typescript模块化/命名空间/装饰器
    Typescript的泛型/泛型接口
    修改git密码后,终端fatal: Authentication failed for'http://xxx/xxx.git'
  • 原文地址:https://www.cnblogs.com/cangowu/p/5157806.html
Copyright © 2020-2023  润新知