js日期处理的两个方法

首先是一个将日期格式化方法

//日期格式化
Date.prototype.fDate = function (mould) {
  var fdate = this
  var o = {};
  o.M = fdate.getMonth() + 1;    //月
  o.d = fdate.getDate();         //日
  o.h = fdate.getHours();        //小时   
  o.m = fdate.getMinutes();      //分   
  o.s = fdate.getSeconds();      //秒
  var weekname = ['', '周', '星期']
  var week = ["日", "一", "二", "三", "四", "五", "六"]

  //处理星期
  if (/(W+)/.test(mould)) {
    var w = fdate.getDay() + "";
    mould = mould.replace(RegExp.$1, weekname[RegExp.$1.length - 1] + week[w]);
  }

  //处理年
  if (/(y+)/.test(mould)) {
    var y = fdate.getFullYear() + "";
    mould = mould.replace(RegExp.$1, y.substr(-RegExp.$1.length));
  }

  //循环处理月,日,时,分,秒
  for (var key in o) {
    if (new RegExp("(" + key + "+)").test(mould)) {
      var str = o[key] + "";
      mould = mould.replace(RegExp.$1, RegExp.$1.length == 1 ? str : ('0000' + str).substr(-RegExp.$1.length));
    }
  }
  return mould;
}

使用示例:

    /*
    * 这里的格式为:yyyy年MM月dd日 hh:mm:ss (MMM)
    * 则输出结果为:2018年10月24日 09:24:02 (星期三)
    */
    var date = new Date();
    console.log(date.fDate('yyyy年MM月dd日 hh:mm:ss (MMM)'));

下边是一个调整日期的方法

//调整日期
Date.prototype.tunDate = function (o) {
  var fun = { y: 'FullYear', M: 'Month', d: 'Date', h: 'Hours', m: 'Minutes', s: 'Seconds' }
  for (var key in o) {
    this['set' + fun[key]](this['get' + fun[key]]() + o[key]);
  }
  return this;
}

使用示例:

    /*
    * 结合上边的日期格式化组合使用
    * 向后推迟一个月少一天
    * 则输出结果为:2018年11月23日 09:24:02 (星期五)
    */
    var date = new Date();
    console.log(date.tunDate({M: 1,d: -1}).fDate('yyyy年MM月dd日 hh:mm:ss (MMM)'));

你可能感兴趣的:(js日期处理的两个方法)