JavaScript Date 对象怎么用?如何创建日期、格式化和操作时间?

文章导读
Previous Quiz Next Date 对象是 JavaScript 语言内置的数据类型。Date 对象使用 new Date() 创建,如下面所示。
📋 目录
  1. 语法
  2. 参数
  3. 返回值
  4. JavaScript Date 参考
  5. JavaScript Date 方法
  6. 示例:创建 JavaScript Date 对象
  7. 示例:设置自定义日期
  8. 示例
  9. 示例:使用 7 个参数构造日期
  10. 示例:格式化日期字符串
A A

JavaScript - Date



Previous
Quiz
Next

Date 对象是 JavaScript 语言内置的数据类型。Date 对象使用 new Date() 创建,如下面所示。

一旦创建了 Date 对象,就可以使用多种方法对其进行操作。大多数方法允许您使用本地时间或 UTC(协调世界时,或 GMT)时间来获取和设置对象的年、月、日、小时、分钟、秒和毫秒字段。

ECMAScript 标准要求 Date 对象能够以毫秒精度表示 1970 年 1 月 1 日前后 1 亿天的任何日期和时间。这是一个正负 273,785 年的范围,因此 JavaScript 可以表示直到 275755 年的日期和时间。

语法

您可以使用以下任一语法通过 Date() 构造函数创建 Date 对象 −

new Date( )
new Date(milliseconds)
new Date(datestring)
new Date(year,month,date[,hour,minute,second,millisecond ])

注意 − 括号中的参数始终是可选的。

参数

  • 无参数 − 不带参数时,Date() 构造函数创建一个设置为当前日期和时间的 Date 对象。
  • milliseconds − 当传递一个数字参数时,它被视为日期的内部数字表示,以毫秒为单位,由 getTime() 方法返回。例如,传递参数 5000 会创建一个表示 1970 年 1 月 1 日午夜后五秒的日期。
  • datestring − 当传递一个字符串参数时,它是 Date.parse() 方法接受的日期格式的字符串表示。
  • 7 个参数 − 使用上述构造函数的最后一种形式。这里是每个参数的描述 −
    • year − 表示年份的整数值。为了兼容性(避免 Y2K 问题),应始终完整指定年份;使用 1998 而非 98。
    • month − 表示月份的整数值,从 0(1 月)开始到 11(12 月)。
    • date − 表示月份中日期的整数值。
    • hour − 表示一天中小时(24 小时制)的整数值。
    • minute − 表示时间读数中分钟部分的整数值。
    • second − 表示时间读数中秒部分的整数值。
    • millisecond − 表示时间读数中毫秒部分的整数值。

返回值

它返回包含日期、月份、日期、年份、小时、分钟、秒和时区信息的日期字符串,如下面所示。

Wed Aug 09 2023 09:24:03 GMT+0530 (India Standard Time)

JavaScript Date 参考

在 JavaScript 中,Date 对象提供了创建、操作和格式化日期和时间的方法。这里列出了 Date class 中的所有方法 −

JavaScript Date 方法

以下是与 Date 相关的常用方法及其描述列表。

Date 静态方法

这些方法通过 Date 对象调用 −

序号 名称 & 描述
1 Date.parse()

解析日期和时间的字符串表示,并返回该日期的内部毫秒表示。

2 Date.UTC()

返回指定 UTC 日期和时间的毫秒表示。

Date 方法

这些方法通过 Date 对象的实例调用 −

序号 名称 & 描述
1 getDate()

根据本地时间返回指定日期的月份中的天数。

2 getDay()

根据本地时间返回指定日期的星期几。

3 getFullYear()

根据本地时间返回指定日期的年份。

4 getHours()

根据本地时间返回指定日期的小时。

5 getMilliseconds()

根据本地时间返回指定日期的毫秒数。

6 getMinutes()

根据本地时间返回指定日期的分钟数。

7 getMonth()

根据本地时间返回指定日期的月份。

8 getSeconds()

根据本地时间返回指定日期的秒数。

9 getTime()

返回指定日期的数值,即自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。

10 getTimezoneOffset()

返回当前区域的时区偏移量(以分钟为单位)。

11 getUTCDate()

根据世界时返回指定日期的月份中的天数。

12 getUTCDay()

根据世界时返回指定日期的星期几。

13 getUTCFullYear()

根据世界时返回指定日期的年份。

14 getUTCHours()

根据世界时返回指定日期的小时。

15 getUTCMilliseconds()

根据世界时返回指定日期的毫秒数。

16 getUTCMinutes()

根据世界时返回指定日期的分钟数。

17 getUTCMonth()

根据世界时返回指定日期的月份。

18 getUTCSeconds()

根据世界时返回指定日期的秒数。

19 setDate()

根据本地时间为指定日期设置月份中的天数。

20 setFullYear()

根据本地时间为指定日期设置完整的年份。

21 setHours()

根据本地时间为指定日期设置小时。

22 setMilliseconds()

根据本地时间为指定日期设置毫秒数。

23 setMinutes()

根据本地时间为指定日期设置分钟数。

24 setMonth()

根据本地时间为指定日期设置月份。

25 setSeconds()

根据本地时间为指定日期设置秒数。

26 setTime()

将 Date 对象设置为自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数所表示的时间。

27 setUTCDate()

根据世界时为指定日期设置月份中的天数。

28 setUTCFullYear()

根据世界时为指定日期设置完整的年份。

29 setUTCHours()

根据世界时为指定日期设置小时。

30 setUTCMilliseconds()

根据世界时为指定日期设置毫秒数。

31 setUTCMinutes()

根据世界时为指定日期设置分钟数。

32 setUTCMonth()

根据世界时为指定日期设置月份。

33 setUTCSeconds()

根据世界时为指定日期设置秒数。

34 toDateString()

以人类可读的字符串形式返回 Date 的“日期”部分。

35 toISOString()

以 ISO 格式返回日期字符串。

36 toLocaleDateString()

使用当前区域设置的惯例,以字符串形式返回 Date 的“日期”部分。

37 toJSON()

将日期转换为字符串。

38 toLocaleString()

使用当前区域设置的惯例,将日期转换为字符串。

39 toLocaleTimeString()

使用当前区域设置的惯例,以字符串形式返回 Date 的“时间”部分。

40 toString()

返回表示指定 Date 对象的字符串。

41 toTimeString()

以人类可读的字符串形式返回 Date 的“时间”部分。

42 toUTCString()

使用世界时惯例将日期转换为字符串。

43 valueOf()

返回 Date 对象的原始值。

Date 对象构造函数

以下是 JavaScript 中的 Date 对象构造函数 −

序号 名称 & 描述
1 Date()

返回今天的日期和时间。

示例:创建 JavaScript Date 对象

在下面的示例中,我们创建了 date 对象的实例。在输出中,你可以看到它返回当前时间。

<html>
<head>
   <title> JavaScript - Date object </title>
</head>
<body>
<p id = "output"> </p>
<script>
   const date = new Date();
   document.getElementById("output").innerHTML = 
      "Today's date is : " + date;
</script>
</body>
</html>

输出

如果我们执行上述程序,它将返回当前时间。

示例:设置自定义日期

在下面的示例中,我们将自定义日期字符串作为参数传递给 Date() 构造函数来创建自定义日期。

Date() 构造函数返回标准日期字符串,你可以在输出中看到。

<html>
<head>
    <title> JavaScript - Date object </title>
</head>
<body>
<p id = "output"> </p>
<script>
   const date = new Date("August 19, 2024 09:30:54");
   document.getElementById("output").innerHTML = 
      "The custom date is : " + date;
</script>
</body>
</html>

输出

如果我们执行上述程序,它将返回提供的自定义时间。

示例

在下面的示例中,我们将毫秒数作为参数传递给 Date() 构造函数。如果你传递正毫秒数作为参数,对象将根据 1970 年 1 月 1 日 00:00:00 + 毫秒数返回日期。

否则,如果传递负毫秒数作为参数,它将根据 1970 年 1 月 1 日 00:00:00 - 毫秒数返回日期。

<html>
<head>
   <title> JavaScript - Date object </title>
</head>
<body>
<p id = "output"> </p>
<script>
   const output = document.getElementById("output");
   let date = new Date(999999999999);
   output.innerHTML += "The Date after 1st January, 1970 is - " + date + "<br>";
   date = new Date(-999999999999);
   output.innerHTML += "The Date before 1st January, 1970 is - " + date;
</script>
</body>
</html>

输出

它将返回 1970 年 1 月 1 日之后和之前的日期作为结果。

示例:使用 7 个参数构造日期

在下面的示例中,我们将年、月、日、小时、分钟、秒和毫秒作为 Date() 构造函数的参数传递。Date() 构造函数返回完整的日期字符串,你可以在输出中看到。

<html>
<head>
   <title> JavaScript - Date object </title>
</head>
<body>
<p id = "output"> </p>
<script>
   const date = new Date(2001, 5, 14, 6, 43, 58, 342);
   document.getElementById("output").innerHTML = 
      "The custom date is : " + date;
</script>
</body>
</html>

输出

如果我们执行上述程序,它将返回提供的自定义时间。

不过,你可以使用 Date 对象的不同方法来格式化日期字符串。让我们看下面的示例。

示例:格式化日期字符串

在下面的示例中,使用了三种不同的方法来格式化日期字符串。

toDateString() 方法仅从日期字符串中提取日期部分,并移除时间部分。

toISOString() 方法将日期字符串转换为 ISO 格式。

toUTCString() 方法将日期字符串转换为 UTC 时间格式。

<html>
<head>
   <title> JavaScript - Formatting the date </title>
</head>
<body>
<p id = "output"> </p>
<script>
   const date = new Date(999999999999);
   document.getElementById("output").innerHTML += 
      "The Date after 1st January, 1970 is: " + date.toDateString() + "<br>"+
      "The Date after 1st January, 1970 is: " + date.toISOString() + "<br>"+
      "The Date after 1st January, 1970 is: " + date.toUTCString();
</script>
</body>
</html>

输出

它将分别返回上述方法的输出。