【Date对象】js中的日期类型Date对象的使用详情

发布时间:2023-12-21 23:49:08

在这里插入图片描述

😁 作者简介:一名大四的学生,致力学习前端开发技术
??个人主页:夜宵饽饽的主页
? 系列专栏:JavaScript小贴士
👐学习格言:成功不是终点,失败也并非末日,最重要的是继续前进的勇气

?🔥?前言:

本文是关于js中的Date对象的使用详情和注意点,时间的处理是需要严谨和小心的,环境不一样,可能是会导致时间出现偏差,这是我自己的知识小碎片,希望可以帮助到大家,欢迎大家的补充和纠正

关于日期类型Date

概念:创建一个JavaScriptDate实例,该实例呈现时间中的某一个时刻,Date对象则基于Unix Time Stamp,即自1970年1月1日(UTC)起经过的 毫秒数

语法:

new Date()
new Date(value)
new Date(dataString)
//方括号中的参数表示可选的,例如:date,hours,minutes,seconds,milliseconds
new Date(year,monyhIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]])

创建一个新的Date对象的时候,一定要使用new Date()的构造函数形式创建,假如使用Date()这种常规函数形式创建是,将返回一个字符串,而不是一个Date对象

参数: Date() 构造函数有四种形式的参数

  1. 没有参数

    如果没有提供参数,那么新创建的Date对象标识实例化时刻的日期和时间

  2. Unix时间戳

    1. value

      一个Unix时间戳,它是一个整数值,表示从1970年1月1日 00:00:00起经过的秒数,Unix时间戳通常以毫秒(是13位的整数)或者秒(是10位的整数)为单位的

    2. 时间戳字符串dateString

      表示日期的字符串值,但是该字符串要能符合两种规则(即符合 IETF-compliant RFC 2822 timestamps 或 ISO8601 的版本)

      1. IETF-compliant RFC 2822 timestamps: 该格式类似于以下示例:

        /** GMT表示格林威治标准时间,因为其与世界时(UTC)差异非常小,所以通常作为世界是(UTC)的替代术语使用 **/
        Mon, 25 Dec 1995 13:30:00 GMT
        

        这是一种常见的日期字符串格式,通常用于HTTP头部中的日期表示。

      2. ISO8601: ISO8601 是一种国际标准的日期和时间表示法,其基本格式为:

        2023-12-19T15:30:00Z
        

        或者,包含时区信息的扩展格式:

        makefileCopy code
        2023-12-19T15:30:00+03:00
        

        在这个格式中,T分隔日期和时间,Z表示UTC时间,+03:00 表示相对于UTC的时区偏移。

        由于浏览器之间的差异与不一致性,强烈不推荐使用Date构造函数来解析日期字符串 (或使用与其等价的Date.parse)。对 RFC 2822 格式的日期仅有约定俗成的支持。对 ISO 8601 格式的支持中,仅有日期的串 (例如 “1970-01-01”) 会被处理为 UTC 而不是本地时间,与其他格式的串的处理不同。

    3. 分别提供日期与时间的每一个成员

      当至少提供了年份与月份时,这一形式的 Date() 返回的 Date 对象中的每一个成员都来自下列参数。没有提供的成员将使用最小可能值(对日期为1,其他为0)。

      • year

        ? 表示年份的整数值。0 到 99 会被映射至 1900 年至 1999 年,其他值代表实际年份。参见 示例

      • monthIndex

        ? 表示月份的整数值,从 0(1 月)到 11(12 月)。

      • date可选

        ? 表示一个月中的第几天的整数值,从 1 开始。默认值为 1。

      • hours 可选

        ? 表示一天中的小时数的整数值 (24 小时制)。默认值为 0(午夜)。

      • minutes 可选

        ? 表示一个完整时间(如 01:10:00)中的分钟部分的整数值。默认值为 0。

      • seconds 可选

        ? 表示一个完整时间(如 01:10:00)中的秒部分的整数值。默认值为 0。

      • milliseconds 可选

        ? 表示一个完整时间的毫秒部分的整数值。默认值为 0。

实例:

//1. 没有参数
var datenull=new Date()
console.log(datenull); //2023-12-19T07:57:52.339Z

//2. 时间戳
var unixTimestamp = 1639789200000; // 2021-12-19T12:00:00.000Z
var dateObject = new Date(unixTimestamp);
console.log(dateObject); //2021-12-18T01:00:00.000Z

//3. 时间戳字符串`dateString
var dateStringRFC2822 = "Mon, 25 Dec 1995 13:30:00 GMT";
var dateStringISO8601 = "2023-12-19T15:30:00Z";

var timestampRFC2822 = Date.parse(dateStringRFC2822); 
var timestampISO8601 = Date.parse(dateStringISO8601); 

console.log(timestampRFC2822); //819898200000
console.log(timestampISO8601); //1702999800000

//4. 时间日期成员
var datefour=new Date(2021,11,19)
console.log(datefour); //2021-12-18T16:00:00.000Z

方法:

当我们有了合格的Date对象时就可以使用其内置的方法啦。以下我列出常见的几种

  1. getDate(): 获取月份中的某一天,返回值为1到31之间的一个整数。

    codevar currentDate = new Date();
    var dayOfMonth = currentDate.getDate();
    
  2. getMonth(): 获取月份,返回值为0到11之间的一个整数。需要注意,月份是从0开始计数的,0表示一月,11表示十二月。

    codevar currentDate = new Date();
    var month = currentDate.getMonth();
    
  3. getFullYear(): 获取四位数的年份。

    codevar currentDate = new Date();
    var year = currentDate.getFullYear();
    
  4. getHours(): 获取小时,返回值为0到23之间的一个整数。

    codevar currentDate = new Date();
    var hours = currentDate.getHours();
    
  5. getMinutes(): 获取分钟,返回值为0到59之间的一个整数。

    codevar currentDate = new Date();
    var minutes = currentDate.getMinutes();
    
  6. getSeconds(): 获取秒数,返回值为0到59之间的一个整数。

    codevar currentDate = new Date();
    var seconds = currentDate.getSeconds();
    
文章来源:https://blog.csdn.net/m0_56132701/article/details/135141523
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。