• 《红宝书》 |基本引用类型-Date


    yacP39.png

    创建对象

    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封装 |时间对象相关方法

  • 相关阅读:
    HTTP协议详解【转】
    Spring中的IOC和AOP
    Servlet生命周期
    Struts2基本原理【转】
    继承映射的三种方式
    树状数组(两个树状数组累计)
    二维数组数组(区间更新+单点查询)
    东西海岸(逆序对)
    离散化+单点更新+区间求和
    单调栈+dp
  • 原文地址:https://www.cnblogs.com/sanhuamao/p/14375544.html
Copyright © 2020-2023  润新知