// ======================== 创建 Date 对象 ========================
// Date() 是 JavaScript 的内置对象,用来处理日期和时间。
// 1️⃣ 创建当前时间的日期对象(系统当前时间)
const date = new Date();
console.log(date);
// 输出当前本地时间,如:Fri Oct 11 2024 15:23:10 GMT+0200
// 2️⃣ 使用数值创建日期对象
// 语法:new Date(year, month, day, hour, minute, second, millisecond)
// 注意:month 从 0 开始(0 = 一月, 11 = 十二月)
const date1 = new Date(2028, 0, 1, 2, 3, 4, 5);
console.log(date1);
// 输出: Sat Jan 01 2028 02:03:04 GMT+XXXX
// 3️⃣ 使用字符串创建日期对象
// ISO 8601 格式字符串(国际标准时间格式)
const date2 = new Date('2028-01-11T12:03:04.005Z');
console.log(date2);
// 输出: Wed Jan 11 2028 13:03:04 GMT+0100 (取决于时区)
// 注意: "Z" 表示 UTC 时间(世界标准时间)
// 4️⃣ 使用毫秒时间戳创建日期对象
// JavaScript 中时间以 1970年1月1日00:00 UTC 起的毫秒数计算
const date3 = new Date(2700000000000);
console.log(date3);
// 输出: Sat Jul 04 2055 07:20:00 GMT+XXXX
// (表示从 1970 到 2055 年之间的毫秒数对应的日期)
// ======================== 修改日期对象 ========================
// set 系列方法可以修改日期中的某一部分(年/月/日/时/分/秒)
date.setFullYear(2024); // 设置年份为 2024
date.setMonth(2); // 设置月份(0 = 一月 → 2 = 三月)
date.setDate(15); // 设置日期为 15号
date.setHours(7); // 设置小时为 7 点
date.setMinutes(44); // 设置分钟为 44 分
date.setSeconds(47); // 设置秒数为 47 秒
// ======================== 读取日期各部分 ========================
// get 系列方法返回日期对象中的具体部分
const year = date.getFullYear(); // 获取年份(如 2024)
const month = date.getMonth(); // 获取月份(0 开始 → 2 = 三月)
const day = date.getDate(); // 获取当月的第几天(1–31)
const hour = date.getHours(); // 小时(0–23)
const minutes = date.getMinutes();// 分钟(0–59)
const seconds = date.getSeconds();// 秒(0–59)
const dayOfWeek = date.getDay(); // 星期几(0 = 周日, 1 = 周一, ...)
// 打印时间组成信息
console.log(`${year}year, ${month}month, ${day}day, ${hour}hour, ${minutes}minutes, ${seconds}seconds, ${dayOfWeek}dayOfWeek`);
// 示例输出: 2024year, 2month, 15day, 7hour, 44minutes, 47seconds, 5dayOfWeek
// ======================== 日期比较 ========================
// Date 对象可以直接比较,内部会自动转换成时间戳(毫秒数)进行比较
if (date2 > date1) {
console.log("happy new year");
}
// 如果 date2 晚于 date1,则输出 "happy new year"