日期对象是 JavaScript 语言内置的数据类型。日期对象使用 new Date()
创建。
一旦创建了日期对象,就可以使用多种方法对其进行操作。大多数方法允许你获取和设置对象的年、月、日、小时、分钟、秒和毫秒字段,可以使用本地时间或 UTC(通用协调时间,即 GMT)时间。
ECMAScript 标准要求日期对象能够表示 1970 年 1 月 1 日前后 1 亿天内的任意日期和时间,精确到毫秒。这个范围大约是正负 273,785 年,因此 JavaScript 可以表示直到 275755 年的日期和时间。
语法
可以使用以下任一语法创建日期对象:
new Date()
new Date(milliseconds)
new Date(datestring)
new Date(year, month, date[, hour, minute, second, millisecond])
注意:括号中的参数总是可选的。
参数
-
无参数:当没有参数传递时,
Date()
构造函数创建一个设置为当前日期和时间的日期对象。
-
milliseconds:当传递一个数值参数时,它被认为是日期的内部数值表示,单位为毫秒,就像
getTime()
方法返回的一样。例如,传递参数 5000
创建的日期表示 1970 年 1 月 1 日午夜后五秒钟。
-
datestring:当传递一个字符串参数时,它是日期的字符串表示,格式为
Date.parse()
方法接受的格式。
-
七个参数:使用上述最后一种形式的构造函数时,各参数描述如下:
-
year:代表年的整数值。为了兼容性(为了避免 Y2K 问题),你应该总是使用完整的年份;使用
1998
而不是 98
。
-
month:代表月份的整数值,从 0(一月)到 11(十二月)。
-
-
hour:代表一天中的小时数(24 小时制)的整数值。
-
-
-
millisecond:代表时间读数中的毫秒段的整数值。
返回值
返回包含日期、月份、日期、年份、小时、分钟、秒和时区的日期字符串,如下面的示例所示:
Wed Aug 09 2023 09:24:03 GMT+0530 (India Standard Time)
JavaScript 日期对象引用
在 JavaScript 中,Date 对象提供了创建、操作和格式化日期和时间的方法。以下是 Date 类中所有的方法列表:
JavaScript Date 静态方法
这些方法使用 Date
对象调用:
序号 |
名称 |
描述 |
1 |
Date.parse() |
解析一个日期和时间的字符串表示,并返回该日期的内部毫秒表示。 |
2 |
Date.UTC() |
返回指定的 UTC 日期和时间的毫秒表示。 |
JavaScript 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() |
以人类可读的字符串形式返回日期部分。 |
35 |
toISOString() |
以 ISO 格式返回日期字符串。 |
36 |
toLocaleDateString() |
以当前地区约定的形式返回日期部分。 |
37 |
toJSON() |
将日期转换为字符串。 |
38 |
toLocaleString() |
使用当前地区的约定将日期转换为字符串。 |
39 |
toLocaleTimeString() |
以当前地区约定的形式返回时间部分。 |
40 |
toString() |
返回表示指定日期对象的字符串。 |
41 |
toTimeString() |
以人类可读的字符串形式返回时间部分。 |
42 |
toUTCString() |
使用通用时间约定将日期转换为字符串。 |
43 |
valueOf() |
返回 Date 对象的原始值。 |
Date 对象构造器
以下是在 JavaScript 中的 Date 对象构造器:
序号 |
名称 |
描述 |
1 |
Date() |
返回今天的日期和时间。 |
示例
示例:创建 JavaScript 日期对象
在下面的例子中,我们创建了一个新的日期对象实例。从输出中可以看到,它返回了当前时间。
<html>
<head>
<title> JavaScript - Date object </title>
</head>
<body>
<p id = "output"> </p>
<script>
const date = new Date();
document.getElementById("output").innerHTML =
"今天的日期是 : " + 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 =
"自定义日期是 : " + date;
</script>
</body>
</html>
输出
如果执行上述程序,它会返回所提供的自定义时间。
JavaScript 日期对象示例
示例:传递毫秒数给 Date() 构造函数
在下面的例子中,我们将毫秒数作为 Date()
构造函数的参数。如果你传递的是正数毫秒,则对象返回从 1970 年 1 月 1 日 00:00:00 开始加上毫秒数的日期。
否则,如果传递的是负数毫秒,则返回从 1970 年 1 月 1 日 00:00:00 减去毫秒数的日期。
<html>
<head>
<title> JavaScript - 日期对象 </title>
</head>
<body>
<p id = "output"> </p>
<script>
const output = document.getElementById("output");
let date = new Date(999999999999);
output.innerHTML += "1970 年 1 月 1 日之后的日期是 - " + date + "<br>";
date = new Date(-999999999999);
output.innerHTML += "1970 年 1 月 1 日之前的日期是 - " + date;
</script>
</body>
</html>
输出
它返回了 1970 年 1 月 1 日之后和之前相应的日期。
示例:使用七个参数构建日期
在下面的例子中,我们将年、月、日、小时、分钟、秒以及毫秒作为 Date()
构造函数的参数。Date()
构造函数返回完整的日期字符串,你可以在输出中看到。
<html>
<head>
<title> JavaScript - 日期对象 </title>
</head>
<body>
<p id = "output"> </p>
<script>
const date = new Date(2001, 5, 14, 6, 43, 58, 342);
document.getElementById("output").innerHTML =
"自定义日期是 : " + date;
</script>
</body>
</html>
输出
如果执行上述程序,它会返回所提供的自定义时间。
然而,你可以使用日期对象的不同方法来格式化日期字符串。让我们看看下面的例子。
示例:格式化日期字符串
在下面的例子中,使用了三种不同的方法来格式化日期字符串。
-
toDateString()
方法仅提取日期字符串中的日期部分,移除时间部分。
-
toISOString()
方法将日期字符串转换成 ISO 格式。
-
toUTCString()
方法将日期字符串转换成 UTC 时间格式。
<html>
<head>
<title> JavaScript - 格式化日期 </title>
</head>
<body>
<p id = "output"> </p>
<script>
const date = new Date(999999999999);
document.getElementById("output").innerHTML +=
"1970 年 1 月 1 日之后的日期是: " + date.toDateString() + "<br>"+
"1970 年 1 月 1 日之后的日期是: " + date.toISOString() + "<br>"+
"1970 年 1 月 1 日之后的日期是: " + date.toUTCString();
</script>
</body>
</html>
输出
它会分别返回上述提供的方法的结果。