创建对象
Date类型将日期保存为自协调世界时(UTC,Universal Time Coordinated)时间1970年1月1日零时至今所经过的毫秒数。它接受一个毫秒数(1970年1月1日零时之后的毫秒数)作为参数,以创建其他日期和时间。
let now=new Date()//当前的日期和时间
let other=new Date(1111111111)
一般来说我们是不知道指定日期的毫秒数是多少的,ESMAScript提供了两个辅助方法帮助我们转换指定日期为毫秒数:Date.parse()
和Date.UTC()
辅助方法
-
Date.parse()
:接受一个表示日期的字符串作为参数,将其转换为对应的毫秒数。它支持一下格式://1. “月/日/年”——如:“2/4/2021” //2. “月名 日,年”——如:“May 23,2019” //3. "周几 月名 日 年 时:分:秒 时区"——如“Tue May 23 2019 00:00:00 GMT-0700” //4. IS0 8601扩展格式“YYYY-MM-DDTHH:mm:ss.sssZ”——如"2021-02-04T11::47:00"(只适用于兼容E5的实现)
let someDate=new Date(Date.parse("Feb 4,2021")) //可直接传,后台会自动调用Date.parse() let otherDate=new Date("Feb 5,2021")
-
Date.UTC()
:接受年、月(0-11)、日(0-30)、时(0-24)、分、秒、毫秒作为参数,将其转换为对应的毫秒数。其中年、日是必需的,如果不提供日,默认为1日,其他参数默认为0:let someDate = new Date(Date.UTC(2021, 1, 4)); let otherDate = new Date(Date.UTC(2021, 1, 4, 12, 17, 22)); //可以直接传参数,后台会自动调用Date.UTC() let someDate = new Date(2021, 1, 4); let otherDate = new Date(2021, 1, 4, 12, 17, 22);
-
Date.now()
:返回方法执行时的毫秒数。//起始时间 let start=Date.now() //结束时间 let stop=Date.now() //时间间隔 let result=stop-start
获取特定部分
getFullYear()
:年份getMonth()
:月份(0表示一月份)getDate()
:哪一日(1—31)getDay()
:周几(0 表示星期日)getHours()
:小时getMinutes()
:分钟getSeconds()
:秒getMilliseconds()
:毫秒数getTimezoneOffset()
:返回UTC相对于当前时区的时间差值,单位为分钟
const date = new Date()//Thu Feb 04 2021 22:41:20 GMT+0800 (中国标准时间)
date.getFullYear()//2021
date.getMonth()//1
date.getDate()//4
date.getDay()//4
date.getHours()//22
date.getMinutes()//41
date.getSeconds()//20
date.getMilliseconds()//100
date.getTimezoneOffset()//-480
设置特定部分
setFullYear(year)
:年份setMonth(month)
:月份setDate(date)
:哪一日(从1--31)setHours(hour)
:小时setMinutes(minutes)
:分钟setSeconds(seconds)
:秒
继承的方法
Date类型重写了toLocaleString()
、toString()
和valueOf()
。它们都接受locales
(地区) 和 options
(相关配置)作为参数:
toLocaleString()
:返回该日期对象的字符串,格式因不同语言而不同。toString()
:转化为字符串。valueOf()
:返回原始值。(这里是距离1970年1月1日零时的毫秒数)
let date = new Date()//Sat Dec 12 2020 08:00:00 GMT+0800 (中国标准时间)
date.toLocaleString()//2020/12/12上午8:00:00
date.toLocaleString('ko-KR', { timeZone: 'UTC' })//2020. 12. 12. 오전 12:00:00
date.toString()//Sat Dec 12 2020 08:00:00 GMT+0800 (中国标准时间)
date.valueOf()//1607731200000
格式化与毫秒数
toDateString()
:返回日期部分的字符串toLocaleDateString()
:返回日期部分的字符串,格式因不同语言而不同。toTimeString()
:返回时间部分的字符串toLocaleTimeString()
:返回时间部分的字符串,格式因不同语言而不同。
let date = new Date(2020, 11, 12);
//日期部分
date.toDateString()//Sat Dec 12 2020
date.toLocaleDateString()//2020/12/12
date.toLocaleDateString('de-DE')//12.12.2020
//时间部分
date.toTimeString()//00:00:00 GMT+0800 (中国标准时间)
date.toLocaleTimeString()//上午12:00:00
date.toLocaleTimeString('en-US')//12:00:00 AM
-
getTime()
:返回值一个数值,表示从1970年1月1日0时0分0秒距离该日期对象所代表时间的毫秒数。 -
setTime()
:以一个表示从1970-1-1 00:00:00 UTC计时的毫秒数为来为Date
对象设置时间。let date = new Date(2021, 2, 4); let date1=date.getTime()//1614787200000 date2.setTime(date1);
相关文章:
js封装 |时间对象相关方法