《红宝书》 |基本引用类型-Date
创建对象
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封装 |时间对象相关方法


浙公网安备 33010602011771号