时间戳转换成 yyyy-MM-dd hh:mm 格式 函数封装

/**

 * 将评价的时间戳转换成 yyyy-MM-dd hh:mm 格式

 *

 * RegExp.$1 代表匹配到的括号里面的多个值,这里是yyyy替换成传入的时间戳中获取的年份,去替换获取的 y 的长度,

 * (date.getFullYear() + '').substr(4 - RegExp.$1.length) 这部分计算之后就是从 0 开始截取,

 * 那就是截取倒了4位完整的年份,如果是 yy 就是两个那就是从2开始截取就是 17 年, + '' 的作用是将他转化成字符串的形式

 *

 * 至于日期之间的连接符我们没有去匹配,所以不用管还是原来的连接符

 */

 export function formatDate(date, fmt) {

  if (/(y+)/.test(fmt)) {

    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));

  }

  let o = {

    'M+': date.getMonth() + 1,

    'd+': date.getDate(),

    'h+': date.getHours(),

    'm+': date.getMinutes(),

    's+': date.getSeconds()

  };

  for (let k in o) {

    if (new RegExp(`(${k})`).test(fmt)) {

      let str = o[k] + '';

      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));

    }

  }

  return fmt;

 };

 /**

  *

  * @param {*} str 代表传入的参数

  * 比如说传入了 是单位数 9 ,那么就返回 009,传入的参数 9 长度是1,然后从第一位开始截取,那就是返回 09

  *

  * 比如说传入的是 12 的之类的双位数,那么就返回 0012, 参数长度是2,从第二位开始截取,那么就是 返回 12

  */

 function padLeftZero(str) {

   return ('00' + str).substr(str.length);

 }

猜你喜欢

转载自blog.csdn.net/weixin_39418338/article/details/104439506