TypeScript - 日期对象



在 TypeScript 中,'Date' 对象是一个内置对象,允许开发人员创建和管理日期和时间。它直接继承自 JavaScript,因此包含与 JavaScript 中的 Date 对象相同的方法。但是,您需要确保 TypeScript 中 Date 对象的类型和 Date 方法的返回值类型。

语法

您可以按照以下语法在 TypeScript 中使用 Date 对象。

let date: Date = new Date(); // Date Constructor
// OR
date = new Date(milliseconds); // Passes milliseconds
// OR
date = new Date(date_String); // Passes date string
// OR
date = new Date(year, month, day, hour, minute, second, milli_second); 

在上面的语法中,我们解释了使用 Date() 构造函数的 4 种不同方法,它们接受不同的参数。

参数

  • milliseconds:它是自 1971 年 1 月 1 日以来的毫秒总数。

  • date_String:它是一个日期字符串,包含年份、月份、日期等。

  • year, month, day, hour, minute, second, milli_second:Date() 构造函数根据这些参数创建一个新的日期。

返回值

Date 构造函数根据传递的参数返回日期字符串。如果我们不传递任何参数,它将返回带有当前时间的日期字符串。

示例

让我们通过一些 TypeScript 示例来进一步了解日期对象。

示例:创建新的日期

在下面的代码中,首先,我们使用 Date() 构造函数创建了一个日期,并且没有传递任何参数。它返回当前日期和时间。

接下来,我们传递了毫秒作为参数,它根据毫秒总数返回日期。

接下来,我们将日期字符串格式作为 Date() 构造函数的参数传递,它根据日期字符串返回一个新日期。

接下来,我们将年份、月份、日期等作为 Date() 构造函数的单独参数传递,它使用这些参数创建一个新的日期字符串。

let date: Date = new Date(); // Date Constructor
console.log(date); // Output: Current Date and Time

date = new Date(10000000000); // Passes milliseconds
console.log(date); // Output: 1970-04-26T17:46:40.000Z

date = new Date('2020-12-24T10:33:30'); // Passes date string
console.log(date); // Output: 2020-12-24T10:33:30.000Z

date = new Date(2020, 11, 24, 10, 33, 30, 0); // Passes year, month, day, hour, minute, second, millisecond
console.log(date); // Output: 2020-12-24T10:33:30.000Z

编译后,它将生成以下 JavaScript 代码。

let date = new Date(); // Date Constructor
console.log(date); // Output: Current Date and Time

date = new Date(10000000000); // Passes milliseconds
console.log(date); // Output: 1970-04-26T17:46:40.000Z

date = new Date('2020-12-24T10:33:30'); // Passes date string
console.log(date); // Output: 2020-12-24T10:33:30.000Z

date = new Date(2020, 11, 24, 10, 33, 30, 0); // Passes year, month, day, hour, minute, second, millisecond
console.log(date); // Output: 2020-12-24T10:33:30.000Z

输出

上述示例代码的输出将显示当前日期和提供的自定义日期。

示例:访问日期和时间组件

您可以使用 getFullYear() 方法从日期字符串中获取年份。类似地,getMonth() 和 getDate() 方法分别用于从日期字符串中获取月份和日期。

let someDate = new Date();
console.log(`Year: ${someDate.getFullYear()}`);  // Outputs current year
console.log(`Month: ${someDate.getMonth()}`);    // Outputs current month (0-indexed)
console.log(`Day: ${someDate.getDate()}`);       // Outputs current day

编译后,它将生成相同的 JavaScript 代码。

let someDate = new Date();
console.log(`Year: ${someDate.getFullYear()}`);  // Outputs current year
console.log(`Month: ${someDate.getMonth()}`);    // Outputs current month (0-indexed)
console.log(`Day: ${someDate.getDate()}`);       // Outputs current day

输出

上述示例代码的输出将显示当前日期的年份、月份和日期。

示例:向当前日期添加天数

我们可以使用不同的方法来操作日期字符串。这里,我们使用了 setDate() 方法将日期字符串中的天数增加 7 天。

getDate() 方法返回日期,我们向其添加 7。然后,我们将新的一天传递给 setDate() 方法的参数。

setDate() 方法会自动管理更改月份或年份。例如,如果当前日期是 30,并且您想向其添加 7 天,它将返回带有下一月的新日期。

let date = new Date();
date.setDate(date.getDate() + 7);  // Adds 7 days to the current date
console.log(date);  // Outputs the date 7 days in the future

编译后,它将生成相同的 JavaScript 代码。

let date = new Date();
date.setDate(date.getDate() + 7);  // Adds 7 days to the current date
console.log(date);  // Outputs the date 7 days in the future

输出

它的输出将显示比当前日期早七天的日期。

示例:格式化日期

我们可以使用不同的选项来格式化日期字符串。这里,我们使用了 DateTimeFormatOptions() 方法来格式化日期字符串。

它将 'en-US' 作为第一个参数,这是一个国家代码,并将选项对象作为第二个参数。选项对象包含星期几、年份、月份和日期的格式详细信息。

let today = new Date();
let options: Intl.DateTimeFormatOptions = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
let formattedDate = new Intl.DateTimeFormat('en-US', options).format(today);
console.log(formattedDate);  // E.g., 'Tuesday, April 27, 2024'

编译后,它将生成以下 JavaScript 代码。

let today = new Date();
let options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
let formattedDate = new Intl.DateTimeFormat('en-US', options).format(today);
console.log(formattedDate); // E.g., 'Tuesday, April 27, 2024'

输出

上述示例代码的输出将生成以美国格式格式化的今天日期。

示例:处理时区

这里,我们在下面的代码中处理不同的时区。首先,我们使用 Date 对象的 UTC() 方法根据 UTC 创建日期,并将其作为 Date() 构造函数的参数传递。

接下来,我们使用 toLocaleString() 方法根据时区更改日期字符串。toLocaleString() 方法将国家代码作为第一个参数,并将包含 timeZone 属性的对象作为第二个参数。

let utcDate = new Date(Date.UTC(2024, 0, 1, 0, 0, 0));
console.log(utcDate.toISOString());  // Outputs '2024-01-01T00:00:00.000Z'
console.log(utcDate.toLocaleString('en-US', { timeZone: 'America/New_York' }));  // Adjusts to Eastern Time

编译后,它将生成相同的 JavaScript 代码。

let utcDate = new Date(Date.UTC(2024, 0, 1, 0, 0, 0));
console.log(utcDate.toISOString());  // Outputs '2024-01-01T00:00:00.000Z'
console.log(utcDate.toLocaleString('en-US', { timeZone: 'America/New_York' }));  // Adjusts to Eastern Time

输出

其输出如下:

2024-01-01T00:00:00.000Z
12/31/2023, 7:00:00 PM

TypeScript 中的 Date 对象继承自 JavaScript,提供了一套全面的功能来管理日期和时间。通过有效地利用 Date 对象,开发人员可以执行各种日期和时间操作,这对于依赖时间数据的应用程序至关重要。

广告