TypeScript - 日期物件:初學者指南
您好,未來的編程超新星!今天,我們將踏上一段令人興奮的旅程,探索TypeScript中的日期世界。如果您之前從未寫過一行代碼,也不用擔心——我將成為您友好的導遊,我們會一步一步地進行。在本教程結束時,您將能像專業人士一樣操作日期!
什麼是日期物件?
在我們深入細節之前,讓我們先來討論一下日期物件到底是什麼。在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