四十五.时间对象

249 阅读4分钟

创建时间对象

new Date()在代码运行时,创建一个本地当前时间点对象,其返回值是一个对象。

image.png

image.png

在控制台打印时间对象渲染的效果是字符串,但是一个对象。

时间对象常用的方法

get方法

getDate():从创建的本地时间对象中返回一个月中的某一天 (1 ~ 31)。

getDay():从创建的本地时间对象中返回一周中的某一天 (0 ~ 6),一周有7天,星期天返回0,星期一返回1。

getMonth():从创建的本地时间对象中返回月份 (0 ~ 11),1月返回0,12月返回11。真实月份=返回值+1。

getFullYear():从创建的时间对象中以四位数字返回年份。

getYear():当年份介于1900与1999 之间时,getYear()方法返回仅有两位数字的值,表示从创建的本地时间对象中返回年份;当年份在1900之前或1999之后时,返回的后两位数字的值,表示从创建的本地时间对象中返回年份。用getFullYear()方法代替。

getHours():从创建的本地时间对象中返回小时 (0 ~ 23),24小时制。

getMinutes():从创建的本地时间对象中返回分钟 (0 ~ 59)。

getSeconds():从创建的本地时间对象中返回秒数 (0 ~ 59)。

getMilliseconds():从创建的本地时间对象中返回毫秒(0 ~ 999),1000毫秒是1秒。

getTime():从创建的本地时间对象中返回1970 年1月1日至创建的本地当前时间的毫秒数。(北京时间的时区为东8区,起点时间实际为:'1970/01/01 08:00:00',终点时间为创建的当前的本地时间)

image.png

image.png

set方法

setFullYear(year, opt_month, opt_date):可选月和日,设置Date对象的年份值;4位年份。

setMonth(month, opt_date):可选日,设置Date对象的月份值。0表示1月,11表示12月。

setDate(date):设置Date对象的月份中的日期值;值的范围1~31。可用于将天数添加到日期,如果添加天数,切换月份或年份,则更改将由Date对象自动处理。

setHours(hour, opt_min, opt_sec, opt_msec):设置Date对象的小时值。

setMinute(min, opt_sec, opt_msec):设置Date对象的分钟值。

setSeconds(sec, opt_msec):设置Date对象的秒数值。

setMilliseconds(msec):设置Date对象的毫秒值。

setTime():设置时间(从 1970 年 1 月 1 日至今的毫秒数),通过从 1970 年 1 月 1 日午夜开始添加或减去指定的毫秒数来设置日期和时间。

image.png

image.png

得到下一周同一天的日期

image.png

image.png

创建时间的方式

1.new Date():不传参,在代码运行时,创建一个本地当前时间点对象。

2.new Date(ms):传入的参数是一个数字作为毫秒数,把毫秒数转换为Date对象,表示从'1970/01/01 00:00:00'为起点,开始叠加的毫秒数。注意:起点的时分秒还要加上当前所在的时区,北京时间的时区为东8区,起点时间实际为:'1970/01/01 08:00:00'

image.png

image.png

1000毫秒为1秒,则'1970/01/01 08:00:00'过了1000毫秒就是'1970/01/01 08:00:01'

3.new Date(dateStr):传入的参数是字符串,把字符串转换为Date对象,Date对象的字符串(可省略时间)的格式。主要有两种:yyyy/MM/dd HH:mm:ss(都用的这种)若省略时间,返回的Date对象的时间是00:00:00;yyyy-MM-dd HH:mm:ss若省略时间,返回的Date对象的时间为 08:00:00(加上本地时区),若不省略时间,此字符串在IE中会转换失败。

image.png

image.png

4.new Date(year, month, opt_day, opt_hours, opt_minutes, opt_seconds, opt_milliseconds):把年月日、时分秒转换为Date对象。传入的参数都是数字:year:年份4位数字,如:1999、2014;month:月份2位数字,取值0-11,从0开始计算,0表示1月份、11表示12月份;opt_day可选,号数2位数字,取值1-31,从1开始计算,1表示1号;opt_hours可选,小时2位数字,取值0-23;opt_minutes可选,分钟2位数字,取值0-59;opt_seconds可选,秒2位数字,取值0-59;opt_milliseconds可选,毫秒3位数字,取值0-999。可只传年月必填项,opt是可不填的选项,初始值为0。

image.png

image.png

5.静态方法:返回自 1970/01/01 以来的毫秒数

image.png

image.png

时间对象的减法运算

创建的两个时间点对象可计算时间差值,其差值表示两个时间点相差的毫秒值。

image.png

image.png

时间对象超过单位会自动进位切换时间

如:超过每月的天数会往前进位到下一月,超过60分钟会前进一小时。

image.png

image.png

09表示10月,10月只有31天,超过的天数自动进位到下一月。