TypeScript - 日期物件:初學者指南

您好,未來的編程超新星!今天,我們將踏上一段令人興奮的旅程,探索TypeScript中的日期世界。如果您之前從未寫過一行代碼,也不用擔心——我將成為您友好的導遊,我們會一步一步地進行。在本教程結束時,您將能像專業人士一樣操作日期!

TypeScript - Date Object

什麼是日期物件?

在我們深入細節之前,讓我們先來討論一下日期物件到底是什麼。在TypeScript(和JavaScript)中,日期物件代表時間中的一個單一瞬間。它就像是一張特定日期和時間的快照,我們可以在程序中操作和使用它。

您可以把它想像成一個數字時鐘,您可以將其設定為過去、現在或將來的任何時間。酷炫吧?

語法:創建日期物件

現在,讓我們看看如何在TypeScript中創建日期物件。有幾種方法可以做到這點,我會通過示例展示每一種方法。

1. 當前日期和時間

要創建一個具有當前日期和時間的日期物件,您只需使用new Date()構造函數,而不需要任何參數。

let currentDate = new Date();
console.log(currentDate);

如果您運行這段代碼,您將看到類似於以下內容:

2023-06-15T12:30:45.678Z

這可能看起來有點令人生畏,但別擔心!這只是以標準化的格式顯示當前日期和時間。

2. 指定日期和時間

您也可以為特定的日期和時間創建日期物件。有多種方法可以做到這點:

a. 使用日期字符串

let christmas = new Date("December 25, 2023 00:00:00");
console.log(christmas);

這將輸出:

2023-12-25T00:00:00.000Z

b. 使用分離的參數

let newYear = new Date(2024, 0, 1, 0, 0, 0);
console.log(newYear);

這將輸出:

2024-01-01T00:00:00.000Z

請注意,月份的值為0代表一月。在JavaScript和TypeScript中,月份是從零開始的,所以一月是0,二月是1,以此類推。這是一個常會讓初學者中招的特點,所以請記住這一點!

c. 使用從紀元起的毫秒數

您也可以通過指定從1970年1月1日(所謂的“紀元”)起的毫秒數來創建日期:

let someDate = new Date(1687012345678);
console.log(someDate);

這將輸出對應於該紀元後的毫秒數的日期和時間。

使用日期物件

既然我們知道了如何創建日期物件,那麼讓我們來看看我們可以用它們做些什麼。

獲取日期組成部分

日期物件有許多方法可以獲取日期的不同組成部分:

let today = new Date();

console.log("全年:", today.getFullYear());
console.log("月份:", today.getMonth());
console.log("日期:", today.getDate());
console.log("星期:", today.getDay());
console.log("小時:", today.getHours());
console.log("分鐘:", today.getMinutes());
console.log("秒數:", today.getSeconds());

這可能會輸出以下內容:

全年: 2023
月份: 5
日期: 15
星期: 4
小時: 12
分鐘: 45
秒數: 30

請記住,getMonth()返回的是從零開始的月份,所以5代表六月!

設置日期組成部分

正如我們可以獲取日期的組成部分一樣,我們也可以設置它們:

let futureDate = new Date();

futureDate.setFullYear(2025);
futureDate.setMonth(11);  // 十二月
futureDate.setDate(31);
futureDate.setHours(23);
futureDate.setMinutes(59);
futureDate.setSeconds(59);

console.log(futureDate);

這將設置日期為2025年12月31日23:59:59。

格式化日期

TypeScript(和JavaScript)提供了一些內置方法來格式化日期:

let event = new Date("July 4, 2023 12:00:00");

console.log(event.toDateString());
console.log(event.toTimeString());
console.log(event.toLocaleDateString());
console.log(event.toLocaleTimeString());
console.log(event.toISOString());

這將輸出:

Tue Jul 04 2023
12:00:00 GMT+0000 (協調世界時)
7/4/2023
12:00:00 PM
2023-07-04T12:00:00.000Z

日期運算

日期物件最酷的事情之一就是我們可以用它們進行數學運算!讓我們看一些例子:

添加天數

let today = new Date();
let nextWeek = new Date(today.getTime() + 7 * 24 * 60 * 60 * 1000);

console.log("今天:", today);
console.log("下一周:", nextWeek);

這將當前日期加7天。我們將7(天)乘以24(小時)乘以60(分鐘)乘以60(秒)乘以1000(毫秒)以得到一周的毫秒數。

減少日期

我們也可以計算兩個日期之間的差異:

let start = new Date("March 1, 2023");
let end = new Date("June 15, 2023");

let difference = end.getTime() - start.getTime();
let days = Math.floor(difference / (24 * 60 * 60 * 1000));

console.log(`在${start.toDateString()}和${end.toDateString()}之間有${days}天`);

這將計算從2023年3月1日到2023年6月15日之間的天數。

結論

恭喜您!您已經在TypeScript中的日期物件世界踏出了第一步。我們已經介紹了創建日期、獲取和設置日期組成部分、格式化日期,甚至還有日期運算。

請記住,處理日期有時可能會有些麻煩,特別是當處理不同的時區或夏令時時。但隨著練習,您會變得越來越熟悉和熟練。

這裡是一個總結我們所介紹的主要方法的表格:

方法 描述
new Date() 創建一個新的日期物件
getFullYear() 獲取年份(四位數)
getMonth() 獲取月份(0-11)
getDate() 獲取月份中的日期(1-31)
getDay() 獲取星期中的日期(0-6)
getHours() 獲取小時(0-23)
getMinutes() 獲取分鐘(0-59)
getSeconds() 獲取秒(0-59)
setFullYear() 設置年份
setMonth() 設置月份
setDate() 設置月份中的日期
setHours() 設置小時
setMinutes() 設置分鐘
setSeconds() 設置秒
toDateString() 返回日期部分作為可讀的字符串
toTimeString() 返回時間部分作為可讀的字符串
toLocaleDateString() 使用区域设置返回日期部分
toLocaleTimeString() 使用区域设置返回时间部分
toISOString() 返回ISO格式的日期

繼續練習,繼續編程,最重要的是,玩得開心!編程世界充滿了令人興奮的可能,而掌握日期只是個開始。祝您編程愉快!

Credits: Image by storyset