JavaScript - Date
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>
输出
它将分别返回上述方法的输出。