Date对象是 JavaScript 原生的时间库。它以1970年1月1日00:00:00做为时间的零点,能够表示的时间范围是先后各1亿天(单位为毫秒)。下面是本次分享的列表:javascript
Date()
普通函数用法和构造函数用法Date.now(),Date.parse(),Date.UTC()
valueOf()
Date()函数用法和构造函数用法html
`java
Date() // 输出 Fri Oct 12 2018 16:41:20 GMT+0800
Date(2018, 10, 12) // 输出 Fri Oct 12 2018 16:41:20 GMT+0800
复制代码
` 2. Date()构造函数用法,使用new关键字实例化Date,返回一个Date对象的实例,若是不设置参数,返回的就是当前时间对象的实例:函数
`spa
var curDate = new Date();
console.log(curDate) // 当前时间字符串 Fri Oct 12 2018 16:57:10 GMT+0800
curDate.getFullYear() // 当前时间的年
curDate.getMonth() // 当前时间的月
curDate.getDate() // 当前时间的天
复制代码
`实例化Date时接收参数,而所谓接收参数,通俗的讲就是,给实例设置一个初始化的时间,不在取当前时间,实例化Date的参数能够接收多种格式,第一种毫秒格式的整数参数:prototype
`code
var msDate = new Date(1539302400000) // Date 2018-10-12T00:00:00.000Z
复制代码
` 第二种是日期字符串,而日期字符串格式,只要能够被Date.parse()解析的,就能够做为参数应用htm
`对象
new Date('2018/10/12') // Date 2018-10-12T00:00:00.000Z
new Date('2018-10-12') // Date 2018-10-12T00:00:00.000Z
new Date('10/12/2018') // Date 2018-10-12T00:00:00.000Z
复制代码
` 第三种是年,月,日,时,分,秒的整数参数ip
`
var setMyDate = new Date(2018, 10, 12, 17, 17, 30);
setMyDate.getFullYear(); // 输出 2018
setMyDate.getMonth(); //输出 10
setMyDate.getDate(); // 输出 12
// ... 依次类推输出设置的时间
复制代码
` 对于第三种年月日时分秒整数参数设置时,必须设置年月两个参数,其余参数可选择性设置,由于若是只设置一个参数,就会被看成毫秒式格式:
`
new Date(2018) //设置一个参数 Thu Jan 01 1970 08:00:02 GMT+0800 (CST)
new Date(2018, 10) //设置两个参数 Date 2018-10-22T00:00:00.000Z
复制代码
第三种年月日时分秒整数参数设置,还能够设置为负数,负数表示从设置的时间日减去相应的时间
new Date(2018, -1) // Sat Dec 01 2017 00:00:00 GMT+0800 (CST)
new Date(2018, 0, -1) // Sun Dec 30 2017 00:00:00 GMT+0800 (CST)
复制代码
`
Date实例各个参数的取值范围以下:
Date日期运算
Date的日期运算主要应用+和-运算符,+运算符就是把两个Date实例的时间字符串拼接: `
var msDate = new Date(2018, 10);
var myDate = new Date(2015, 10, 12);
console.log(msDate + myDate) // Thu Nov 01 2018 00:00:00 GMT+0800Thu Nov 12 2015 00:00:00 GMT+0800
复制代码
-运算符会更具实用性,-运算符会把两个实例对象转换为它们的毫秒数进行相减,得出两个实例间隔的毫秒数:
var msDate = new Date(2018, 10);
var myDate = new Date(2015, 10, 12);
console.log(msDate - myDate) // 93744000000
复制代码
`
Date静态方法
Date.now(),Date.parse(),Date.UTC()
Date.now()
方法返回当前时间距离(1970年1月1日 00:00:00 UTC)的毫秒数: `
Date.now() // 1539338654125
复制代码
`
Date.parse()
方法用来解析日期字符串,返回该时间距离(1970年1月1日 00:00:00 UTC)的毫秒数,若是Date.parse()失败,则返回NaN: `
Date.parse('2012-01-01') // 1325376000000
Date.parse('2015/01/01') // 1420041600000
Date.parse('***') // NaN
复制代码
`
Date.UTC
方法接受年、月、日等变量做为参数,返回该时间距离时间零点(1970年1月1日 00:00:00 UTC)的毫秒数。
`
Date.UTC(2018, 10, 12, 18, 15, 30) // 1542046530000
复制代码
`
该方法的参数用法与Date构造函数彻底一致,好比月从0开始计算,日期从1开始计算。区别在于Date.UTC方法的参数,会被解释为 UTC 时间(世界标准时间),Date构造函数的参数会被解释为当前时区的时间。
Date实例方法get系列,set系列,to系列,
valueOf()
Date的实例对象,有几十个本身的方法,除了valueOf和toString,能够分为如下三类。
to
类:从Date对象返回一个字符串,表示指定的时间。get
类:获取Date对象的日期和时间。set
类:设置Date对象的日期和时间。Date.prototype.valueOf(),value方法返回实例对象距离时间零点(1970年1月1日00:00:00 UTC)对应的毫秒数,该方法等同于getTime方法。
`
var myDate = new Date()
myDate.valueOf(); // 1541001600000
myDate.getTime(); // 1541001600000
复制代码
` (1)to系列方法
Date.prototype.toString()
方法返回一个完整的日期字符串,和实例对象输出同样;Date.prototype.toUTCString()
方法返回对应的 UTC 时间,也就是比北京时间晚8个小时;Date.prototype.toISOString()
方法返回对应时间的 ISO8601 写法;Date.prototype.toJSON()
方法返回一个符合 JSON 格式的 ISO 日期字符串,与toISOString方法的返回结果彻底相同;Date.prototype.toDateString()
方法返回日期字符串(不含小时、分和秒);Date.prototype.toTimeString()
toTimeString方法返回时间字符串(不含年月日);Date.prototype.toLocaleString()
方法返回完整的本地时间;Date.prototype.toLocaleDateString()
方法返回本地日期(不含小时、分和秒);Date.prototype.toLocaleTimeString()
方法返回本地时间(不含年月日);(2)get系列方法
get系列,是获取Date实例上的时间,new Date()已经初始化了一个时间。
getTime()
:返回实例距离1970年1月1日00:00:00的毫秒数,等同于valueOf方法。getDate()
:返回实例对象对应每月的几号(从1开始)。getDay()
:返回星期几,星期日为0,星期一为1,以此类推。getYear()
:返回距离1900的年数。getFullYear()
:返回四位的年份。getMonth()
:返回月份(0表示1月,11表示12月)。getHours()
:返回小时(0-23)。getMilliseconds()
:返回毫秒(0-999)。getMinutes()
:返回分钟(0-59)。getSeconds()
:返回秒(0-59)。getTimezoneOffset()
:返回当前时间与 UTC 的时区差别,以分钟表示,返回结果考虑到了夏令时因素(3)set系列方法
set系列,是对实例对象上的时间从新设置,也能够理解成修改,由于Date构造函数建立时,就已经初始化了一个时间,给new Date()传入参数就是设置时间:
setDate()
:设置实例对象对应的每月的几号(1-31),返回改变后毫秒时间戳。setYear()
: 设置距离1900年的年数。setFullYear()
:设置四位年份。setHours()
:设置小时(0-23)。setMilliseconds()
:设置毫秒(0-999)。setMinutes()
:设置分钟(0-59)。setMonth()
:设置月份(0-11)。setSeconds()
:设置秒(0-59)。setTime()
:设置毫秒时间戳。get系列和set系列还有对应的UTC世界标准时间的get方法,这里将不在一一列举了,你们也能够去w3c官网查看;
结语
Date日期对象在看咱们的平常开发中使用仍是比较多的,最典型的就是你们都常常用的日历控件,还有一些取本地时间来作的倒计时等。在下一章节的分享中,将分享一个日历控件的和倒计时的demo,喜欢的朋友空调关注下,以示鼓励,谢谢。
本次分享参考了网道WangDoc.com, w3c;