日期时间的转换

时间戳是什么

时间戳是指自1970年1月1日00:00:00 (世界标准时间) 起通过的毫秒数。
目前大部分状况下为13位,但有的时候服务器会省略存储10位,即存储的是秒数,由于平常使用不须要那么精确到秒。服务器

关于Date函数

Date这里先不赘述,可自行阅读文档。函数

咱们如今只须要知道,向Date里传入时间戳,咱们会获得一个时间对象spa

var time = new Date(1453094034000);

clipboard.png
这个时间对象依旧不是咱们想要的时间格式,就须要咱们自行对其进行转换。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

clipboard.png

方法以下

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());
相关文章
相关标签/搜索