Object.prototype的原型对象 格式化日期【js笔记】

我们默认使用的new Date()方法实现的时间往往比较全面,甚至包括了时区,但是有的时候我们用到的并没有这么多,
这个时候能有一个可以简单格式化我们想要的格式的方法,想必是极好的
利用Object.prototype的原型对象,创建一个可以格式化时间的format 方法

<script>
  Date.prototype.format = function(format) {
    if (isNaN(this)) return '';
      var o = {
        'm+': this.getMonth() + 1,
        'd+': this.getDate(),
        'h+': this.getHours(),
        'n+': this.getMinutes(),
        's+': this.getSeconds(),
        'S': this.getMilliseconds(),
        'W': ["日", "一", "二", "三", "四", "五", "六"][this.getDay()],
        'q+': Math.floor((this.getMonth() + 3) / 3)
       };
      if (format.indexOf('am/pm') >= 0) {
        format = format.replace('am/pm', (o['h+'] >= 12) ? '下午' : '上午');
        if (o['h+'] >= 12) o['h+'] -= 12;
      }
      if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
      }
      for (var k in o) {
        if (new RegExp("(" + k + ")").test(format)) {
          format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
        }
      }
    return format;
}


  var time1 = new Date().format('yyyy-mm-dd hh-nn-ss');
  console.log("现在是"+time1); // 现在是2016-03-18 13-39-18

  var time2 = new Date().format('yyyymmdd');
  console.log("现在是"+time2);//现在是20160318

  var time3 = new Date().format('yyyy年mm月dd日');
  console.log("现在是"+time3);//现在是2016年03月18日
</script>

posted @ 2016-03-18 13:59  HollyLearningNotes  阅读(167)  评论(0编辑  收藏  举报