zoukankan      html  css  js  c++  java
  • 《红宝书》 |基本引用类型-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封装 |时间对象相关方法

  • 相关阅读:
    Sum Root to Leaf Numbers 解答
    459. Repeated Substring Pattern
    71. Simplify Path
    89. Gray Code
    73. Set Matrix Zeroes
    297. Serialize and Deserialize Binary Tree
    449. Serialize and Deserialize BST
    451. Sort Characters By Frequency
    165. Compare Version Numbers
    447. Number of Boomerangs
  • 原文地址:https://www.cnblogs.com/sanhuamao/p/14375544.html
Copyright © 2011-2022 走看看