js 将时间戳转成时间格式化

一、时间戳

时间戳是以时间元年1970年开始算起到当前时间的一个值,以秒为单位,比如1535694719秒,如何转化为我们想要的格式,yyyy/mm/dd或者yyyy-MM-dd hh:mm,格式根据自己想要的进行改。

二、将时间戳转成Data对象

1    function(value) {
2       //将时间戳转成Data对象
3       let date = new Date(value * 1000);
4       //将data进行格式化
5       return formatDate(date, "yyyy-MM-dd hh:mm");
6 }

因为时间戳是秒,data对象是毫秒,所以要*1000,调用formatDate函数

需要引入formatDate函数

formatDate(date, fmt) {
  // 获取年份
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(
      RegExp.$1,  //匹配到的结果yyyy,替换成后面的内容
      (date.getFullYear() + "").substr(4 - RegExp.$1.length) //(date.getFullYear() + "") 2019 + + "" 表示将数字转换成字符串
      //substr表示截取几位,假如传过来的是两位yy,就将2019截取4-2位成了19
    );
  }

  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;
}


function padLeftZero(str) { //小时分钟秒不足两位的话用00补位,然后str.length
  //假如是04:0004 截取两位 04
  //假如是4:004 截取一位:04
  return ("00" + str).substr(str.length);
}

猜你喜欢

转载自www.cnblogs.com/lyt0207/p/12048240.html