• Js之DateFormat工具类


    /**
     * 对Date的扩展,将Date转化为指定格式的String
     * 年(y)、季度(q)、月(M)、日(d)、小时(h)、分(m)、秒(s)可以用1-2个占位符
     * 示例:
     * FormatDateCNT(new Date(),"yyyy-MM-dd hh:mm:ss")
     * @param obj   具体的日期
     * @param type  日期格式 如:yyyy年MM月dd日
     */
    function FormatDateCNT(obj,type){
        var myDate = new Date(obj);
        var y = myDate.getFullYear();
        var q = Math.floor((myDate.getMonth()+3)/3);
        var M = ("0"+(myDate.getMonth()+1)).slice(-2);
        var d = ("0"+myDate.getDate()).slice(-2);
        var h = ("0"+myDate.getHours()).slice(-2);
        var m = ("0"+myDate.getMinutes()).slice(-2);
        var s = ("0"+myDate.getSeconds()).slice(-2);
        var mi = ("00"+myDate.getMilliseconds()).slice(-3);
        var current_date = '';
        if(type=="yyyy-MM-dd"){
            current_date = y + '年' + M + '月' + d + '日';
        }else if(type=="yyyy-MM-dd HH:mm:ss"){
            current_date = y + '年' + M + '月' + d + '日 ' + h + '时' + m + '分' + s + '秒';
        }
        return current_date;
    }
    
    /**
     * 对Date的扩展,将Date转化为指定格式的String
     * 年(y)、季度(q)、月(M)、日(d)、消失(h)、分(m)、秒(s)、毫秒(S)可以用1-2个占位符
     * 示例:
     * FormatDateTime(new Date(),"yyyy-MM-dd hh:mm:ss.s")
     * @param obj   具体的日期
     * @param type  日期格式 如:yyyy-MM-dd
     */
    function FormatDateTime(obj,type){
        if(!obj){return obj;}
        var myDate = new Date(obj);
        var y = myDate.getFullYear();
        var q = Math.floor((myDate.getMonth()+3)/3);
        var M = ("0"+(myDate.getMonth()+1)).slice(-2);
        var d = ("0"+myDate.getDate()).slice(-2);
        var h = ("0"+myDate.getHours()).slice(-2);
        var m = ("0"+myDate.getMinutes()).slice(-2);
        var s = ("0"+myDate.getSeconds()).slice(-2);
        var mi = ("00"+myDate.getMilliseconds()).slice(-3);
        var current_date = '';
        if(type=="yyyy-MM-dd"){
            current_date = y + '-' + M + '-' + d;
        }else if(type=="yyyy-MM-dd HH:mm:ss"){
            current_date = y + '-' + M + '-' + d + ' ' + h + ':' + m + ':' + s;
        }else if(type=="yyyy-MM-dd HH:mm:ss.s"){
            current_date = y + '-' + M + '-' + d + ' ' + h + ':' + m + ':' + s + '.' + mi;
        }else if(type=="yyyy/MM/dd"){
            current_date = y + '/' + M + '/' + d;
        }else if(type=="yyyy/MM/dd HH:mm:ss"){
            current_date = y + '/' + M + '/' + d + ' ' + h + ':' + m + ':' + s;
        }else if(type=="yyyy/MM/dd HH:mm:ss.s"){
            current_date = y + '/' + M + '/' + d + ' ' + h + ':' + m + ':' + s + '.' + mi;
        }
        return current_date;
    }
    
    /**
     *
     *  @param obj   具体的日期:yyyy-mm-dd
     *  @param days  天数 如:2
     */
    function addDate(obj,days)
    {
        var d = new Date(obj);
        d.setDate(d.getDate()+days);
        var m =d.getMonth()+1;
        return d.getFullYear()+"-"+m+"-"+d.getDate();
    }
    /**
    *
    *  @param obj   具体的日期:yyyy-mm-dd
    *  @param obj2  具体的日期:yyyy-mm-dd
    */
    function retDate(obj,obj2)
    {
        var d = new Date(obj);
        var d2 = new Date(obj2);    
        d.setFullYear(d.getFullYear()-d2.getFullYear());
        return d.getFullYear()
    }
    /**
    *
    *  @param obj1  具体的日期  yyyy-mm-dd
    *  @param obj2  具体的日期   yyyy-mm-dd
    */
    function compDate(obj,obj1)
    {
        var flag = false;
        var aDate =  new Date(Date.parse(obj.replace(/-/g,"/")));
        var bDate =  new Date(Date.parse(obj1.replace(/-/g,"/")));
        if(aDate < bDate)
            flag = true;
        return flag;
    }
    /**
    *  年度相减 相差xx年
    *  @param obj1  比较日期 2017-02-28
    *  @param obj2  生日日期 2010-02-28
    */
    function yearsubstract(obj,obj1)
    {
        var adate = obj.split("-");
        var bdate = obj1.split("-");
        adate = parseInt(adate[0]);
        bdate = parseInt(bdate[0]);
        return Math.abs(bdate-adate);
    }
    /**
     *  年度相加
     *  @param obj1  比较日期 2017-02-28
     *  @param obj2  生日日期 2010-02-28
     */
    function yearsubadd(obj,obj1)
    {
        var adate = obj.split("-");
        var bdate = obj1.split("-");
        adate = parseInt(adate[0]);
        bdate = parseInt(bdate[0]);
        return Math.abs(bdate+adate);
    }
    /**
    *  月份相减 相差xx个月
    *  @param obj1  具体的日期  yyyy-mm-dd
    *  @param obj2  具体的日期   yyyy-mm-dd
    */
    function monthsubstract(obj,obj1)
    {
        var adate = obj.split("-");
        var bdate = obj1.split("-");
        adate = parseInt(adate[0])*12+parseInt(adate[1]);
        bdate = parseInt(bdate[0])*12+parseInt(bdate[1]);
        return Math.abs(bdate-adate);
    }
    /**
    *  天数相减 相差xx天
    *  @param obj1  具体的日期  yyyy-mm-dd
    *  @param obj2  具体的日期   yyyy-mm-dd
    */
    function daysubstract(obj,obj1)
    {
        var adate = new Date(obj.replace(/-/g,"/"));
        var bdate =  new Date(obj1.replace(/-/g,"/"));
    
        return (bdate.getTime()-adate.getTime())/1000/60/60/24;
    }
    
    /**
    * 
    *  @param obj1  具体的日期  yyyy-mm-dd
    *  @param obj2  具体的日期   yyyy-mm-dd
    */
    function gfGetCalcPlcYear(fromdate,todate) {
        var returnyear;
        var fromdate = new Date(fromdate);
        var todate = new Date(todate);  
        var birthYear = fromdate.getFullYear();
        var birthMonth = fromdate.getMonth();
        var birthDay = fromdate.getDay();
        var nowYear = todate.getFullYear();
        var nowMonth = todate.getMonth();
        var nowDay = todate.getDay();
        if (nowYear == birthYear) {
            returnyear = 0;//同年 则为0岁
        } else {
            var ageDiff = nowYear - birthYear; //年之差
            if (ageDiff > 0) {
                if (nowMonth == birthMonth) {
                    var dayDiff = nowDay - birthDay;//日之差
                    if (dayDiff < 0) {
                        returnyear = ageDiff - 1;
                    } else {
                        returnyear = ageDiff;
                    }
                } else {
                    var monthDiff = nowMonth - birthMonth;//月之差
                    if (monthDiff < 0) {
                        returnyear = ageDiff - 1;
                    } else {
                        returnyear = ageDiff;
                    }
                }
            } else {
                returnyear = -1;//返回-1 表示出生日期输入错误 晚于今天
            }
        }
        return returnyear;//返回周岁年龄    
    }
    
    function calcage(fromdate,todate){
        var returnyear;
        var fromarry = fromdate.split("-");
        var toarry = todate.split("-");
        var birthYear = parseInt(fromarry[0]);
        var birthMonth = parseInt(fromarry[1]);
        var birthDay = parseInt(fromarry[2]);
        var nowYear = parseInt(toarry[0]);
        var nowMonth = parseInt(toarry[1]);
        var nowDay = parseInt(toarry[2]);
        if (nowYear == birthYear) {
            returnyear = 0;//同年 则为0岁
        } else {
            var ageDiff = nowYear - birthYear; //年之差
            if (ageDiff > 0) {
                if (nowMonth == birthMonth) {
                    var dayDiff = nowDay - birthDay;//日之差
                    if (dayDiff < 0) {
                        returnyear = ageDiff - 1;
                    } else {
                        returnyear = ageDiff;
                    }
                } else {
                    var monthDiff = nowMonth - birthMonth;//月之差
                    if (monthDiff < 0) {
                        returnyear = ageDiff - 1;
                    } else {
                        returnyear = ageDiff;
                    }
                }
            } else {
                returnyear = -1;//返回-1 表示出生日期输入错误 晚于今天
            }
        }
        return returnyear;//返回周岁年龄    
    }
    
    //日期date 加年数 year
    function IncYear(tdate, year){
        var nowdate = new Date(tdate);
        nowdate.setFullYear(nowdate.getFullYear()+year);
        nowdate.setDate(nowdate.getDate()-1);
        return nowdate;
    }
    
  • 相关阅读:
    Qt 之 emit、signals、slot的使用
    qt中的 connect 函数
    进程同步:生产者消费者模型 以及解决方法
    Linux 时间 与 定时器
    Linux 环境编程:errno的基本用法
    Linux 环境编程:dirfd参数 有关解析
    Kubernetes设计理念
    禅道升级
    关闭自动更新
    linux下的特殊模式
  • 原文地址:https://www.cnblogs.com/bilaisheng/p/10211014.html
Copyright © 2020-2023  润新知