JavaScript 日期
JavaScript 日期
Section titled “JavaScript 日期”JavaScript 中的 Date 对象允许你处理日期和时间,包括年、月、日、时、分、秒和毫秒。
JavaScript 日期表示方式
Section titled “JavaScript 日期表示方式”JavaScript 日期可以用多种方式表示:
作为字符串(人类可读,但格式因本地环境和方法而异):
const currentDateString = new Date().toString();// Example output: "Mon Jul 22 2024 10:30:00 GMT+0200 (Central European Summer Time)"
const isoDateString = new Date().toISOString();// Example output: "2024-07-22T08:30:00.000Z" (UTC timezone, highly recommended for data interchange)作为数字(时间戳):自 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)以来的毫秒数。
const timestamp = Date.now(); // Current timestamp// orconst timestampFromDateObject = new Date().getTime();// Example output: 1721637000000在 HTML 中显示日期
Section titled “在 HTML 中显示日期”要在 HTML 文档中显示日期,通常获取或创建一个 Date 对象,然后设置 HTML 元素的 textContent 或 innerHTML。避免使用 document.write()。
<!-- HTML --><p>Current Date: <span id="date-display"></span></p>
<script> const dateDisplayElement = document.getElementById('date-display'); if (dateDisplayElement) { dateDisplayElement.textContent = new Date().toLocaleDateString(); // Or .toString(), .toUTCString(), etc. }</script>上面的脚本查找 ID 为 date-display 的元素,并将其文本内容设置为当前日期,格式由用户的本地环境设置决定。
你将在后续章节中学习更多关于日期格式化的内容。对于复杂的日期格式化和操作,请考虑使用专门的库,如 date-fns 或 Luxon。 |
|---|
创建 Date 对象
Section titled “创建 Date 对象”Date 对象使用 new Date() 构造函数创建。
日期包含年、月(0-11)、日、时、分、秒和毫秒。
有几种初始化日期的方法:
new Date() // Current date and timenew Date(milliseconds) // Milliseconds since Unix Epochnew Date(dateString) // Parses a date string (e.g., "2024-07-22T10:00:00Z")new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds)使用 new Date() 创建一个带有当前日期和时间的新 Date 对象:
const now = new Date();// In an HTML context:// const demoElement = document.getElementById("demo");// if (demoElement) demoElement.textContent = now.toString();console.log(now.toString());使用 new Date(dateString) 从一个可识别的日期字符串格式创建一个新的 Date 对象。ISO 8601 格式(YYYY-MM-DDTHH:mm:ss.sssZ)通常是最可靠的。
const specificDate = new Date("2023-10-26T14:30:00");console.log(specificDate.toString());| 如果格式模糊,解析日期字符串可能不可靠。首选 ISO 8601 格式或提供明确的日期组件。 |
|---|
使用 new Date(milliseconds) 根据时间戳(自 1970 年 1 月 1 日 UTC 以来的毫秒数)创建一个 Date 对象。
const oneDayInMilliseconds = 24 * 60 * 60 * 1000;const dayAfterEpoch = new Date(oneDayInMilliseconds);console.log(dayAfterEpoch.toUTCString()); // Fri, 02 Jan 1970 00:00:00 GMT| JavaScript 日期是从协调世界时(UTC)1970 年 1 月 1 日 00:00:00 开始计算的毫秒数。一天包含 86,400,000 毫秒。 |
|---|
使用 new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds) 创建一个具有指定组件的日期。请记住,月份是基于 0 的索引(1 月是 0,12 月是 11)。
const eventDate = new Date(2024, 6, 22, 10, 30, 0, 0); // July 22, 2024, 10:30:00console.log(eventDate.toString());你可以省略末尾的参数;它们将默认为 0(day 默认为 1)。例如,只指定年、月和日:
const justDate = new Date(2024, 0, 15); // January 15, 2024, 00:00:00console.log(justDate.toString());| JavaScript 中的月份是从 0 到 11 计算的。1 月是 0,12 月是 11。这是初学者常犯的错误来源。 |
|---|
Date 方法
Section titled “Date 方法”创建 Date 对象后,有许多方法允许你获取和设置其组件(年、月、日、时、分等),可以是本地时间或 UTC 时间。
示例:getFullYear()、getMonth()、getDate()、getHours()、getMinutes()、getSeconds()、getMilliseconds()、getTime()、setTime(),以及它们对应的 UTC 方法(getUTCFullYear() 等)。
| 日期方法将在后续章节中详细介绍。请参考 MDN Web Docs:Date 获取完整列表。 |
|---|
显示日期:常用格式化方法
Section titled “显示日期:常用格式化方法”当 Date 对象用于需要字符串的上下文时(例如 textContent),它通常会隐式调用其 toString() 方法进行转换。
const d = new Date();// const demoElement = document.getElementById("demo");// if (demoElement) demoElement.textContent = d; // Implicitly calls d.toString()console.log(d.toString());toUTCString() 方法使用 UTC(协调世界时)标准将日期转换为字符串。
const d_utc = new Date();console.log(d_utc.toUTCString());// Example: Mon, 22 Jul 2024 08:30:00 GMTtoDateString() 方法将日期的日期部分转换为更易读、更人性化的字符串。
const d_date = new Date();console.log(d_date.toDateString());// Example: Mon Jul 22 2024其他有用的格式化方法包括 toLocaleDateString()、toLocaleTimeString() 和 toLocaleString(),它们会尊重用户的本地约定。
const d_locale = new Date();console.log(d_locale.toLocaleDateString()); // e.g., 7/22/2024 (US) or 22/07/2024 (UK)console.log(d_locale.toISOString()); // e.g., 2024-07-22T08:30:00.000Z (Standard)Date 对象是时间中的静态快照。计算机时钟会继续计时,但一旦创建,除非使用 setTime() 等方法显式更改其值,否则 Date 对象代表固定的时间点。 |
|---|