本章節你將了解 日期物件,包括處理日期的方法以及如何設定日期格式。
Date
物件是 JS 中的內置對象,可用於處理日期和時間,以下是如何創建它的語法:
const now = new Date();
現在你可以將其輸出到主控台。
const now = new Date();
console.log(now);
輸出:
我們可以獲取更細部的資訊:
const now = new Date();
console.log(now);
const year = now.getFullYear();
console.log(year);
const month = now.getMonth(); // 0-11,0 表示 1 月
console.log(month + 1); // 轉為 1-12
const date = now.getDate(); // 當月中的第幾天
console.log(date);
const day = now.getDay(); // 0 表示星期日,6 表示星期六
console.log(day);
const hours = now.getHours();
const minutes = now.getMinutes();
const seconds = now.getSeconds();
console.log(`${hours}:${minutes}:${seconds}`);
我們也可以提供日期和時間當作參數,格式化日期物件。
const specificDate = new Date("July 4, 1776 12:00:00")
console.log(specificDate)
輸出:
另外,Date.now()
回傳自 1970/01/01 00:00:00 UTC 起經過的毫秒數,以下示範:
const timeElapsed = Date.now();
const today = new Date(timeElapsed);
console.log(timeElapsed);
console.log(today);
輸出:
好,接下來介紹格式化日期的不同方法。以下示範:
const now = new Date();
console.log(now.toISOString()); // 台灣是 UTC+8 時區,所以12:38:59(UTC) + 8 小時 = 20:38:59(當地時間)。
console.log(now.toLocaleDateString('zh-TW')); // 參數可選
console.log(now.toLocaleTimeString('zh-TW')); // 參數可選
console.log(now.toDateString());
console.log(now.toTimeString());
輸出:
好,最後,我們可以計算兩個日期的差異,這常見於部落格的文章中,通常有些網站會標記文章距離發布至今過了幾天。
const specificDate = new Date("January 31, 2025 12:00:00")
const now = new Date();
console.log(specificDate);
console.log(now);
const diff = specificDate - now; // 毫秒數
const days = Math.floor(diff / (1000 * 60 * 60 * 24)); //計算完整經過的天數,忽略未滿一天的部分。
//const days = Math.floor(diff / (1000 * 60 * 60 * 24)); //哪怕只有部分天數經過,也應該算進整天。用於計算「截止日期」。
console.log(days);
輸出: