首页 > 代码库 > 一个方便的日期格式器

一个方便的日期格式器

JavaScript的Date类型只能直接输出特定的形式的表示时间的字符,如:Tue Sep 20 2016 21:37:06 GMT+0800

但我们很少需要输出这样格式的时间

本文后面的代码,通过调用$.formatDate()函数,即可输出你想要的格式的时间

如:

var now=new Date();document。write($.formatDate(now,"M/d/yyyy HH:mm"));

即可输出  9/20/2016 21:37

document.write($.formatDate(now,"M/d/yy HH:mm"));document.write($.formatDate(now,"MM/d/yyyy HH:mm"));
document.write($.formatDate(now,"EEE MMM, d yyyy hh:mm:ss.S a"));

分别输出 9/20/16 21:43          09/20/2016 21:43

             Wed Sep, 21 2016 07:22:28.767 PM

其中,yyyy代表4位数字的年份,yy代表两位数字的年份;

        MMMM代表完整的英文月份名称,MMM代表月份英文名称的缩写,MM代表由0补足的两位数字的月份,M代表月份数字

       dd---由0补足的两位数字的月份中的天,d---月份中的天的缩写

       EEEE---星期的英文完整名称,EEE---星期的英文名称的缩写

       a---上午或下午

       HH---由0补足的,2位数字的2,24小时制的第几小时,H---一天中的第几小时,hh---由0补足的,2位数字的12小时制中的第几小时,h---12小时制的第几小时

       mm---由0补足的,2位数字的分钟数,m---一小时中的分钟数

       ss---由0补足的,2位数字的分钟数,s---一分钟内的秒数,S由0补足的,一秒内的毫秒数

 

     好啦,快收藏下面的代码愉快地使用Date吧!

 

(function($){  $.formatDate = function(date,pattern) {    var result = [];    while (pattern.length>0) {      $.formatDate.patternParts.lastIndex = 0;      var matched = $.formatDate.patternParts.exec(pattern);      if (matched) {        result.push($.formatDate.patternValue[matched[0]].call(this,date));        pattern = pattern.slice(matched[0].length);      }      else {        result.push(pattern.charAt(0));        pattern = pattern.slice(1);      }    }    return result.join(‘‘);  };  $.formatDate.patternParts =    /^(yy(yy)?|M(M(M(M)?)?)?|d(d)?|EEE(E)?|a|H(H)?|h(h)?|m(m)?|s(s)?|S)/;  $.formatDate.monthNames = [    ‘January‘,‘February‘,‘March‘,‘April‘,‘May‘,‘June‘,‘July‘,    ‘August‘,‘September‘,‘October‘,‘November‘,‘December‘  ];  $.formatDate.dayNames = [    ‘Sunday‘,‘Monday‘,‘Tuesday‘,‘Wednesday‘,‘Thursday‘,‘Friday‘,    ‘Saturday‘  ];  $.formatDate.patternValue = {    yy: function(date) {      return $.toFixedWidth(date.getFullYear(),2);    },    yyyy: function(date) {      return date.getFullYear().toString();    },    MMMM: function(date) {      return $.formatDate.monthNames[date.getMonth()];    },    MMM: function(date) {      return $.formatDate.monthNames[date.getMonth()].substr(0,3);    },    MM: function(date) {      return $.toFixedWidth(date.getMonth()+1,2);    },    M: function(date) {      return date.getMonth()+1;    },    dd: function(date) {      return $.toFixedWidth(date.getDate(),2);    },    d: function(date) {      return date.getDate();    },    EEEE: function(date) {      return $.formatDate.dayNames[date.getDay()];    },    EEE: function(date) {      return $.formatDate.dayNames[date.getDay()].substr(0,3);    },    HH: function(date) {      return $.toFixedWidth(date.getHours(),2);    },    H: function(date) {      return date.getHours();    },    hh: function(date) {      var hours = date.getHours();      return $.toFixedWidth(hours>12 ? hours - 12 : hours,2);    },    h: function(date) {      return date.getHours()%12;    },    mm: function(date) {      return $.toFixedWidth(date.getMinutes(),2);    },    m: function(date) {      return date.getMinutes();    },    ss: function(date) {      return $.toFixedWidth(date.getSeconds(),2);    },    s: function(date) {      return date.getSeconds();    },    S: function(date) {      return $.toFixedWidth(date.getMilliseconds(),3);    },    a: function(date) {      return date.getHours() < 12 ? ‘AM‘ : ‘PM‘;    }  };  $.toFixedWidth = function(value,length,fill) {    var result = (value || ‘‘).toString();    fill = fill || ‘0‘;    var padding = length - result.length;    if (padding < 0) {      result = result.substr(-padding);    }    else {      for (var n = 0; n < padding; n++) result = fill + result;    }    return result;  };})(jQuery);

 

一个方便的日期格式器