最近在写项目的时间 , 遇到时间戳转日期这样的问题 , 所以推荐一个超级好用的处理时间的插件 moment.js .
时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
首先 , 自己写js 实现时间戳与日期格式之间的互转
1.将时间戳转换成日期格式
// 简单的一句代码
var date = new Date(时间戳); //获取一个时间对象
/**
- 下面是获取时间日期的方法,需要什么样的格式自己拼接起来就好了
- 更多好用的方法可以在这查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)
获取时间戳 : var res = moment(Date.now(), 'YYYY-MM-DD HH:mm:ss').valueOf();
获取格式时间: var res = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss');
两句话搞定 ~~~
还有很多使用方法 :
更多方法 .可以去官网看~