date

一、时间简介

Date类型使用UTC类型,开始于1970年1月1日零点,并以毫秒为最小单位进行保存。

生成时间当前的方法: 

var date=new Date();
console.log(date,typeof date)//Sat Jun 08 2019 19:17:41 GMT+0800 (GMT+08:00) {},object

 

生成的时间类型是一个对象,只不过这个对象是date类型的,但是目前好像还没有方法可以检验出来他是一个date类型的对象。

-

生成特定时间的方法是往里面传送一个字符串:

var date=new Date("1993-12-16");
console.log(date,typeof date)//Thu Dec 16 1993 08:00:00 GMT+0800 (GMT+08:00) {},object

 

 虽然这种方法课本上并没有提到过,但是的确是可以生成的。但是注意,不同的浏览器生成的值是不一样的,而且ios系统采用8061时间方法制,传入的字符串如果精确到毫秒,如果不按照ios的方式来,是没有办法生成时间的。

 

 

二、生成时间的方法

生成时间的方式严谨来讲有两种,分别是Date.parse()和Date.UTC()。

Date.parse():

该方法接受一个字符串,就像上面提到的一样。但是ES没有规定该方法应该支持哪种类型,因此生成的时间格式因各个浏览器而异。

var date=new Date(Date.parse("1993-12-16 17:00:04"));
console.log(date)//Thu Dec 16 1993 17:00:04 GMT+0800 (GMT+08:00) {}

 

-

Date.UTC():

这个方法很有趣,他接受的参数分别是年分、基于0的月份(0-11)、基于0的天数(0-30)、基于0的小时数(0-23)、分钟、秒、毫秒数。这些参数中,只有年分和月份是必填的,如果省略其它项,则统统假设为开始的那一瞬间。

PS:1秒=1000毫秒

var date=new Date(Date.UTC(1993,12,16,17,0,23,16));
console.log(date)//Mon Jan 17 1994 01:00:23 GMT+0800 (GMT+08:00) {}

 

上面这段代码并没有生成我想要的日期,是因为月份是基于0开始的。所以,输入“12”月份会加一,天数输入“16”会加一。这个生出来的时间也是莫名其妙,不知道怎么来的。

-

var date=new Date(Date.UTC(1993,2,31,17,0,23,16));
console.log(date)//Thu Apr 01 1993 01:00:23 GMT+0800 (GMT+08:00) {}

 

而这段代码,由于2月没有31天,所以生成的时间也不对,而且月份相当于多加了两个月。如果月份输入的是“30”,得到的结果会是3月30号。所以用这个方法生成时间,一定要慎重。

 

三、日期格式

有两种常见方法,对生成时间的格式进行调整。toDateString()和toTimeString().

 

var date=new Date(Date.UTC(1993,11,15,17,0,23));
var date1=date.toDateString("YYYY-MM-DD");
console.log(date1)//Thu Dec 16 1993
var time=date.toTimeString();
console.log(time)//01:00:23 GMT+0800 (GMT+08:00)

这种格式转换的方法并没有没有得到我想要的格式,而且这个日期的时间我还能接受,只是这个time的值,我实在想不明白他是怎么得到的。

 

四、获取时间值的方法

常见的取得时间特定部分方法,有以下几种:

getTime():获取时间戳

var date=new Date("1993-12-16 17:00:04:621");
console.log(date.getTime())//756032404621

 

getFullYear():获取4位数的年分

var date=new Date("1993-12-16 17:00:04:621");
console.log(date.getFullYear())//1993

 

getMonth():获取该日期的月份,返回的值为0-11

var date=new Date("1993-12-16 17:00:04:621");
console.log(date.getMonth())//11

 

常用的方法还有:

getDate():获取该日期月份中的天数

getDay():获取该日期中的星期几,0表示星期天,6表示星期六

 

 

 

 

 

posted @ 2019-06-08 20:08  qingshanyici  阅读(1056)  评论(0编辑  收藏  举报