js 不同时间格式介绍以及相互间的转换

首先必须要提到的是 Date 对象,它用来处理时间和日期。

使用 new Date() 语句可创建 Date 对象,创建出来的时间格式如下(后面提到的标准时间都是指该格式):

Wed Jul 17 2019 13:59:21 GMT+0800 (中国标准时间)

Date 对象有以下几种创建方式:

1. let date = new Date();
2. let date = new Date(milliseconds);
3. let date = new Date(dateString);
4. let date = new Date(year, month, day, hours, minutes, seconds);

解释:

1. 不传参,获取的是当前时间;

2. 传时间戳,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,由10位数字组成(毫秒是13位),这里传10位13位都可以;

3. 传时间的字符串形式,如 '2019/7/17 14:40:30''2019-7-17',这里我试了一下以 '/' 和 '-' 为年月日分隔符都是可以的,空格和逗号不行,年月日要完整,时分秒可不用写全;

4. 传以逗号分隔的时间,如 2019,7, 17, 14, 40, 30 ,这个试了一下年月是必须的,其他可以不写全。注意,month 代表的月份是从0(1月)到11(12月)。

 

时间戳与日期格式的相互转换:

 

一、时间戳转换为标准时间格式

上面已经提到过了,直接将时间戳作为参数传入 new Date() 即可

 

let date = new Date(timestamp)

 

二、标准时间格式转换为时间戳

这个也很简单,利用 Date 对象的 getTime() 方法:

let timestamp = new Date().getTime()

这里获得是13位时间戳,即毫秒

 

三、标准时间格式转换为指定格式

可以利用 Date 对象的一些方法

 

date.getFullYear() // 获取完整的年份

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)

 

需要什么样的时间格式,利用上述方法获得需要的部分再拼接起来。
 
四、时间戳转换为指定格式
先将时间戳转换为标准时间格式,再按三转换为指定格式。
 
补充:当我们想处理时间,例如加一天,减一天,要先转换成时间戳再进行计算。如要获得当前时间的前一小时,可按如下方法计算:
new Date(new Date().getTime() - 1*60*60*1000)
 
参考链接:
https://www.runoob.com/jsref/jsref-obj-date.html
 
https://www.jb51.net/article/130303.htm

 

posted @ 2019-07-17 17:44  Stroyer  阅读(824)  评论(0编辑  收藏  举报