zoukankan      html  css  js  c++  java
  • javascript常用开发笔记:一个简单强大的js日期格式化方法

    前言:一直没找到好用的javascript日期格式化工具,自己写了一个,方便以后复用

    1、主要功能

    (1)支持任意顺序的日期格式排列:yyyy=年,MM=月,dd=日,HH=时,mm=分,ss=秒,sss=毫秒

    (2)支持js的Date对象和标准Long值日期格式化(例如java发送到前端的日期是一个long值)

    (3)日期出现个位数自动填充0

    2、方法实现

    /** 
    *日期格式化 str:格式化字符,d:js日期对象或long值,d为空则自动获取当前日期格式化 
    */  
    function dateFormat(str,d) {  
    if( checkNull(str)){  //如果格式化字符为空,返回空字符  
            return "";    
    }
    if(checkNull(d)){  //如果日期为空,自动获取当前日期  
        d=new Date();    
    }else if(d.constructor!=Date){//如果参数不是一个日期对象,就认为是一个标准Long值日期
    	d=new Date(d);
    }
     return  str.replace("yyyy",d.getFullYear()).replace("MM",fillZero(d.getMonth()+1)).replace("dd",fillZero(d.getDate())).replace("HH",fillZero( d.getHours())).replace("mm",fillZero(d.getMinutes())).replace("ss",fillZero(d.getSeconds())).replace("sss",d.getMilliseconds());  
    }  
    
    //填充0  
    function fillZero(value){  
    if(value.toString().length<2){  
        return "0"+value;  
    }  
    return value;  
    }  
    //判空  
    function checkNull(value){  
    if(!value||value==null||typeof(value) == "undefined"||value==""){  
    return true;  
    }  
    return false;  
    }  
    



    3、测试demo

    <!DOCTYPE html>  
    <html>  
    <head>  
    <meta charset="utf-8">  
    <title>日期格式化 by eguid</title>  
    </head>  
    <body>  
      
    <p>支持任意顺序日期格式排列:</p>  
    <p id="demo">例如:dd日MM月yyyy年 HH:mm:ss</p>  
    <script>  
    /** 
    *日期格式化 str:格式化字符,d:js日期对象,d为空则自动获取当前日期格式化 
    */  
    function dateFormat(str,d) {  
    if( checkNull(str)){  //如果格式化字符为空,返回空字符  
            return "";    
    }
    if(checkNull(d)){  //如果日期为空,自动获取当前日期  
        d=new Date();    
    }else if(d.constructor!=Date){//如果参数不是一个日期对象,就认为是一个标准Long值日期
    	d=new Date(d);
    }
     return  str.replace("yyyy",d.getFullYear()).replace("MM",fillZero(d.getMonth()+1)).replace("dd",fillZero(d.getDate())).replace("HH",fillZero( d.getHours())).replace("mm",fillZero(d.getMinutes())).replace("ss",fillZero(d.getSeconds())).replace("sss",d.getMilliseconds());  
    }  
    
    
    //填充0  
    function fillZero(value){  
    if(value.toString().length<2){  
        return "0"+value;  
    }  
    return value;  
    }  
    //判空  
    function checkNull(value){  
    if(!value||value==null||typeof(value) == "undefined"||value==""){  
    return true;  
    }  
    return false;  
    }   
     //运行日期格式化  
    var str = document.getElementById("demo").innerHTML;   
        document.getElementById("demo").innerHTML =dateFormat(str);  
    </script>  
      
    </body>  
    </html>  


    结果:

    支持任意顺序日期格式排列:

    例如:19日12月2016年 11:13:56:815








  • 相关阅读:
    C89和C99区别--简单总结
    C语言 值传递和地址传递
    对于.h文件和.c文件
    C语言-------多文件编译
    数据结构之第二章线性表
    数据结构之第一章一些概念
    JS-prototype的掌握
    JS-return的使用
    分分钟搞懂JS-闭包函数
    JS-面向对象-封装
  • 原文地址:https://www.cnblogs.com/eguid/p/6821568.html
Copyright © 2011-2022 走看看