时间戳是什么
时间戳是指自1970年1月1日00:00:00 (世界标准时间) 起经过的毫秒数。
目前大部分情况下为13位,但有的时候服务器会省略存储10位,即存储的是秒数,因为日常使用不需要那么精确到秒。
关于Date函数
Date这里先不赘述,可自行阅读文档。
我们现在只需要知道,向Date里传入时间戳,我们会得到一个时间对象
var time = new Date(1453094034000);
这个时间对象依旧不是我们想要的时间格式,就需要我们自行对其进行转换。
因此我们可以使用Date 的方法去获取我们想要的年月日时分秒的数据,来自行组装成我们想要的时间格式。
时间戳转换为日期
ok,我们现在尝试将服务器接收的1453094034000转换为2016-1-18 13:13:54。
明显看出我们需要从时间对象中获取年,月,日,时,分,秒。分别对应Date的以下方法。
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
是可以识别的
方法如下
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());
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。