参考:
Date
阮一峰
日历
Date对象可以作为不同函数直接调用,返回一个代表当前时间的字符串.
Date()
//Thu Apr 19 2018 20:10:04 GMT+0800 (中国标准时间)
Date(2018,02,03)
//依然是当前时间
Date作为构造函数使用
对Date 使用new命令,会返回一个date实例,如果不加参数,返回的就是当前的时间.
Date()对象实例可以接受多种类型的参数
返回的是对应参数的实例对象
console.log(new Date(0))
//Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
new Date('January 6, 2013');
//Sun Jan 06 2013 00:00:00 GMT+0800 (CST)
//年,月,日,天,小时,分钟,秒,毫秒
new Date(2016,02,01,12,12,20,0)
小结
只要能被Date.parse()解析的字符串,都可以当做Date实例的参数
new Date('2013-2-15')
new Date('2013/2/15')
new Date('02/15/2013')
new Date('2013-FEB-15')
new Date('FEB, 15, 2013')
new Date('FEB 15, 2013')
new Date('Feberuary, 15, 2013')
new Date('Feberuary 15, 2013')
new Date('15 Feb 2013')
new Date('15, Feberuary, 2013')
注意
参数为年、月、日等多个整数时,年和月是不能省略的,其他参数都可以省略的。也就是说,这时至少需要两个参数,因为如果只使用“年”这一个参数,Date会将其解释为毫秒数。
月份是从0开始记的,日期的默认值是1,其他都是0.
参数可以是负数
日期进行加减得到的是 毫秒数
解析日期字符串,返回该时间距离零点(1970)的毫秒数。
日期字符串应该符合 RFC 2822 和 ISO 8061 这两个标准,即YYYY-MM-DDTHH:mm:ss.sssZ格式,其中最后的Z表示时区。
但是下面的日期字符串都可以解析。
Date.parse('Aug 9, 1995')
Date.parse('January 26, 2011 13:51:50')
Date.parse('Mon, 25 Dec 1995 13:30:00 GMT')
Date.parse('Mon, 25 Dec 1995 13:30:00 +0430')
Date.parse('2011-10-10')
Date.parse('2011-10-10T14:48:00')
Date.now方法返回当前时间距离时间零点(1970年1月1日 00:00:00 UTC)的毫秒数,
- Date.UTC()
该方法的用法与Date()方法一样,只不过Date()用的是当地的时间,UTC用的是UTC时间。
new Date得到的是
Thu Apr 19 2018 21:31:53 GMT+0800 (中国标准时间)
实例方法有很多,除了valueof,toString
可以分为一下三类:
to:从date返回一个字符串,表示指定的时间,
get:获取对象的日期和时间。
set:设置日期和时间
Date.prototype.valueOf()
返回实例对象距离1970的毫秒数,等同于getTime方法。
new date()实例会自动带用该方法
let start = new Date();//得到是毫秒数
let end = new Date();
elapsed = start - end;
Date.prototype.toString()
返回一个完整的日期字符串
Date.prototype.toString() 返回一个完成的UTC日期字符串
Date.prototype.toISoString() 返回对应时间的ISO8601写法
Date.prototype.toJSON() toJSON方法返回一个符合 JSON 格式的 ISO 日期字符串,与toISOString方法的返回结果完全相同。
Date.prototype.toDateString()
方法返回日期字符串(不含小时、分和秒)。
Date.prototype.toTimeString() 方法返回时间字符串(不含年月日)。
Date.prototype.toLocaleDateString() 方法返回一个字符串,代表日期的当地写法(不含小时、分和秒)。
Date.prototype.toLocaleTimeString() 法返回一个字符串,代表时间的当地写法(不含年月日)。
### get
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 的时区差异,以分钟表示,返回结果考虑到了夏令时因素。
setDate(date): 设置实例对象对应的每个月的几号(1-31),返回改变后毫秒时间戳。
setYear(year): 设置距离1900年的年数。
setFullYear(year [, month, date]): 设置四位年份。
setHours(hour [, min, sec, ms]): 设置小时(0-23)。
setMilliseconds(): 设置毫秒(0-999)。
setMinutes(min [, sec, ms]): 设置分钟(0-59)。
setMonth(month [, date]):设置月份(0-11)。
setSeconds(sec [, ms]):设置秒(0-59) 。
setTime(milliseconds): 设置毫秒时间戳。
普通函数:
Date()有无参数返回的都是当前时间string。
静态方法:(只有Date类可以调用)
Date.parse()把日期字符串解析成时间戳。参数见上
Date.now()返回当前(本地)时间戳
Date.UTC()略
构造函数
new Date()参数可以设置时间。(参数:时间戳、日期字符串、多个整数)
构造函数创建一个实例,会自动调用实例方法valueOf函数,返回一个时间对象。
实例方法:
都是prototype上的函数。
valueOf、toString
剩下三类
to
get
set