超级好用的JavaScript 日期处理类库 -- Moment.js , 以及自己写js --时间戳与日期格式之间的互转

最近在写项目的时间 , 遇到时间戳转日期这样的问题 , 所以推荐一个超级好用的处理时间的插件 moment.js .


axios获取到的时间戳 -> 经过filters处理后的格式.png

时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

首先 , 自己写js 实现时间戳与日期格式之间的互转

1.将时间戳转换成日期格式

// 简单的一句代码
var date = new Date(时间戳); //获取一个时间对象
/**

  1. 下面是获取时间日期的方法,需要什么样的格式自己拼接起来就好了
  2. 更多好用的方法可以在这查http://www.w3school.com.cn/jsref/jsref_obj_date.asp
    */
    date.getFullYear(); // 获取完整的年份(4位,1970)
    date.getMonth(); // 获取月份(0-11,0代表1月,用的时候记得加上1)
    date.getDate(); // 获取日(1-31)
    date.getTime(); // 获取时间(从1970.1.1开始的毫秒数)
    date.getHours(); // 获取小时数(0-23)
    date.getMinutes(); // 获取分钟数(0-59)
    date.getSeconds(); // 获取秒数(0-59)

例子

filters: {
    formatTime(val) {
      const date = new Date(val);
      const Y = date.getFullYear() + "年";
      const M =
        (date.getMonth() + 1 < 10
          ? "0" + (date.getMonth() + 1)
          : date.getMonth() + 1) + "月";
      const D = date.getDate() + "日";
      // h = date.getHours() + ":";
      // m = date.getMinutes() + ":";
      // s = date.getSeconds();
      return Y + M + D
    }
  },

2. 将日期格式转换成时间戳

// 也很简单
var strtime = '2014-04-23 18:55:49:123';
var date = new Date(strtime); //传入一个时间格式,如果不传入就是获取现在的时间了,这样做不兼容火狐。
// 可以这样做
var date = new Date(strtime.replace(/-/g, '/'));
// 有三种方式获取,在后面会讲到三种方式的区别
time1 = date.getTime();
time2 = date.valueOf();
time3 = Date.parse(date);
/*
三种获取的区别:
第一、第二种:会精确到毫秒
第三种:只能精确到秒,毫秒将用0来代替
比如上面代码输出的结果(一眼就能看出区别):
1398250549123
1398250549123
1398250549000
*/

然后就是强大的 moment.js插件(moment.js)

moment.js.png

下载 、 安装
image.png

获取时间戳 : var res = moment(Date.now(), 'YYYY-MM-DD HH:mm:ss').valueOf();
获取格式时间: var res = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss');

两句话搞定 ~~~
还有很多使用方法 :


moment.js.png

更多方法 .可以去官网看~

你可能感兴趣的:(超级好用的JavaScript 日期处理类库 -- Moment.js , 以及自己写js --时间戳与日期格式之间的互转)