时间戳是指自1970年1月1日00:00:00 (世界标准时间) 起通过的毫秒数。
目前大部分状况下为13位,但有的时候服务器会省略存储10位,即存储的是秒数,由于平常使用不须要那么精确到秒。服务器
Date这里先不赘述,可自行阅读文档。函数
咱们如今只须要知道,向Date里传入时间戳,咱们会获得一个时间对象spa
var time = new Date(1453094034000);
这个时间对象依旧不是咱们想要的时间格式,就须要咱们自行对其进行转换。code
所以咱们可使用Date 的方法去获取咱们想要的年月日时分秒的数据,来自行组装成咱们想要的时间格式。对象
ok,咱们如今尝试将服务器接收的1453094034000转换为2016-1-18 13:13:54。blog
明显看出咱们须要从时间对象中获取年,月,日,时,分,秒。分别对应Date的如下方法。ip
date.getFullYear(); date.getMonth(); date.getDate(); date.getHours(); date.getMinutes(); date.getSeconds();
所以,代码以下文档
var date = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 var Y = date.getFullYear() + '-'; var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'; var D = date.getDate() + ' '; var h = date.getHours() + ':'; var m = date.getMinutes() + ':'; var s = date.getSeconds(); return Y+M+D+h+m+s;
Date对象给咱们提供了一些方法让咱们直接将日期转换为时间对象,而后转为时间戳。就不须要咱们本身手动去计算日期到底距离那个标准时间多少秒了。字符串
不过,首先须要明白的是,Date目前只识别如下几种类型的字符串或者数字的时间表达方式。咱们在上一节所转化的字符串2016-1-18 13:13:54
是能够识别的get
方法以下
var t = new Date('2016-1-18 13:13:54'); return t.getTime();
这里扩展一下常常遇到的状况,即日期的加减。
固然Date也有日期的增减方法方法。
所以,思路是,先将字符串日期转换成时间对象,再利用Date的方法进行时间的加减,改变后,咱们再将对象转换成字符串日期便可。
注意,在时间对象的月份存储中,是以0-11来对应1-12月的,所以,须要注意转换
var str = '2019-2-1'; // 初始日期 var date = new Date(); var initdate = str.split("-"); date.setFullYear(parseInt(initdate[0])); date.setMonth(parseInt(initdate[1]) - 1); date.setDate(parseInt(initdate[2]));
var num = 10; date.setMonth(date.getMonth() + num); console.log(date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate());