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








posted @ 2016-12-19 11:22  eguid  阅读(210)  评论(0编辑  收藏  举报