­

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