实用技能
日期与时间
学习 Date 对象、Intl 国际化、时间戳
日期与时间
JavaScript 的 Date 对象处理一切与时间相关的操作。
学完本章你将: 掌握 Date 对象、Intl 国际化、时间戳。
创建日期
javascript
// 当前时间
let now = new Date();
console.log(now); // 2024-06-15T10:30:00.000Z
// 指定日期
let date1 = new Date("2024-06-15");
let date2 = new Date("2024-06-15T10:30:00");
let date3 = new Date(2024, 5, 15); // 月份从 0 开始!6月=5
let date4 = new Date(2024, 5, 15, 10, 30, 0);
// 时间戳(毫秒)
let timestamp = Date.now();
console.log(timestamp); // 1718448600000
let fromTimestamp = new Date(timestamp);
获取与设置
javascript
let d = new Date("2024-06-15T10:30:45");
// 获取
console.log(d.getFullYear()); // 2024
console.log(d.getMonth()); // 5(0-11)
console.log(d.getDate()); // 15
console.log(d.getDay()); // 6(0=周日,6=周六)
console.log(d.getHours()); // 10
console.log(d.getMinutes()); // 30
console.log(d.getSeconds()); // 45
// 设置(返回时间戳)
d.setFullYear(2025);
d.setMonth(0); // 1月
d.setDate(1);
// 时间戳
console.log(d.getTime()); // 毫秒时间戳
console.log(d.valueOf()); // 同上
Intl 国际化
javascript
let date = new Date("2024-06-15");
// 格式化日期
console.log(new Intl.DateTimeFormat("zh-CN").format(date)); // "2024/6/15"
console.log(new Intl.DateTimeFormat("en-US").format(date)); // "6/15/2024"
console.log(new Intl.DateTimeFormat("ja-JP").format(date)); // "2024/6/15"
// 详细选项
let formatter = new Intl.DateTimeFormat("zh-CN", {
year: "numeric",
month: "long",
day: "numeric",
weekday: "long",
});
console.log(formatter.format(date)); // "2024年6月15日星期六"
// 相对时间
let rtf = new Intl.RelativeTimeFormat("zh-CN", { numeric: "auto" });
console.log(rtf.format(-3, "day")); // "3天前"
console.log(rtf.format(1, "month")); // "1个月后"
常用计算
javascript
// 日期差(天数)
let d1 = new Date("2024-06-01");
let d2 = new Date("2024-06-15");
let diffDays = (d2 - d1) / (1000 * 60 * 60 * 24);
console.log(diffDays); // 14
// 添加天数
function addDays(date, days) {
let result = new Date(date);
result.setDate(result.getDate() + days);
return result;
}
console.log(addDays(new Date("2024-06-15"), 30)); // 2024-07-15
// 比较日期
console.log(d1 < d2); // true