javascript常用开发笔记:一个简单强大的js日期格式化方法
- 2019 年 11 月 1 日
- 筆記
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/eguid_1/article/details/53736579
前言:一直没找到好用的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