js中date对象

date对象

  • date对象
    • 普通函数的用法
    • 构造函数的用法
    • 日期的运算
    • 静态方法
    • 实例方法
      • to
      • set
    • 总结

参考:
Date
阮一峰
日历

1.普通函数的用法

Date对象可以作为不同函数直接调用,返回一个代表当前时间的字符串.

Date()
//Thu Apr 19 2018 20:10:04 GMT+0800 (中国标准时间)
Date(2018,02,03)
//依然是当前时间

2.构造函数的用法

Date作为构造函数使用

对Date 使用new命令,会返回一个date实例,如果不加参数,返回的就是当前的时间.

Date()对象实例可以接受多种类型的参数
返回的是对应参数的实例对象

  • 时间戳
    1970.01.01零点开始的毫秒数,
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.

参数可以是负数

3.日期的运算

日期进行加减得到的是 毫秒数

4.静态方法

  • Date.parse()

解析日期字符串,返回该时间距离零点(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()

Date.now方法返回当前时间距离时间零点(1970年1月1日 00:00:00 UTC)的毫秒数,
- Date.UTC()

该方法的用法与Date()方法一样,只不过Date()用的是当地的时间,UTC用的是UTC时间。

5.实例方法

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;

to

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 的时区差异,以分钟表示,返回结果考虑到了夏令时因素。

set

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

你可能感兴趣的:(前端)