js中将获取到的时间戳转化成正常格式

在开发过程中,绝大可能都会遇到请求服务器,服务器返回的时间数据是以时间戳的方式呈现的,这时候就需要我们将时间戳格式转换为我们生活中正常的时间格式。

1、自己通过Date对象方法的形式拼接。

①首先要将时间戳转换成Date对象,时间戳一般以秒为单位,所以在传给Date时,要乘以1000,如果返回的时间戳是毫秒级的,就不用乘以1000了。

const date = new Date(时间戳*1000)

②拿到Date对象,将此对象转换成对应得字符串。

Date对象有对应的方法:以下列举的是比较常用的几个。

//获取当前年份的后2位
date.getYear(); 

//获取4位数的完整年份
date.getFullYear(); 

//获取当前月份,从0-11月,0代表1月,依次下去,所以一般+1才是正常月份数字
date.getMonth();
 
//获取当前日,从1-31日,正常获取
date.getDate(); 

//获取当前星期几,从0-6,0代表星期天,其余正常
date.getDay(); 

//获取当前小时,从0-23点
date.getHours(); 

//获取当前分钟,从0-59分钟
date.getMinutes(); 

//获取当前秒,从0-59秒
date.getSeconds(); 

③从上述方法中自行选择,再进行拼接即可。

2、自己封装一个formatDate(时间戳,"时间输出格式")方法。

时间输出格式: "yyyy-MM-dd hh:mm:ss"

yyyy:代表完整的4位年份数,如果写成yy,那么格式化出来的是两位年份数。

MM:为了与分钟区别开来,用的是大写的M,一般来说是格式化出来两位月份数。

dd:日期数。

hh:时间点数,HH代表24小时制,hh代表12小时制。

mm:分钟数。

ss:秒钟数。

以下代码来源网络,出处不明确,且看且用,感谢创作者!

组件中使用:(记得import一下) 

// 假设传入的value是秒级时间戳
showDate: function (value) {
      let date = new Date(value * 1000);
      return formatDate(date, "yyyy-MM-dd hh:mm");
    }

在utils.js中封装一个方法: 

function padLeftZero(str) {
  return ("00" + str).substr(str.length);
}

// 时间格式化
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;
}

以上就可以将服务器返回的时间戳进行格式化了。

猜你喜欢

转载自blog.csdn.net/michaelxuzhi___/article/details/106166188