JavaScript 提供了 Date
对象来处理日期和时间。以下是关于 JavaScript 日期和时间的主要知识点:
// 当前日期和时间
const now = new Date();
// 指定日期和时间
const specificDate = new Date(2023, 11, 31, 23, 59, 59); // 年月日时分秒(月份从0开始)
// 从字符串创建
const fromString = new Date("December 31, 2023 23:59:59");
// 从时间戳创建
const fromTimestamp = new Date(1672531199000);
const date = new Date();
date.getFullYear(); // 年份(4位数)
date.getMonth(); // 月份(0-11)
date.getDate(); // 日(1-31)
date.getDay(); // 星期几(0-6,0是星期日)
date.getHours(); // 小时(0-23)
date.getMinutes(); // 分钟(0-59)
date.getSeconds(); // 秒(0-59)
date.getMilliseconds();// 毫秒(0-999)
date.getTime(); // 时间戳(自1970年1月1日以来的毫秒数)
const date = new Date();
date.setFullYear(2024);
date.setMonth(0); // 一月
date.setDate(15);
date.setHours(12);
date.setMinutes(30);
date.setSeconds(0);
date.setMilliseconds(0);
const date = new Date();
// 转换为本地字符串
date.toLocaleString(); // "2023/12/31 23:59:59"
date.toLocaleDateString(); // "2023/12/31"
date.toLocaleTimeString(); // "23:59:59"
// ISO格式
date.toISOString(); // "2023-12-31T15:59:59.000Z"
// 其他格式
date.toString(); // "Sun Dec 31 2023 23:59:59 GMT+0800 (中国标准时间)"
date.toUTCString(); // "Sun, 31 Dec 2023 15:59:59 GMT"
// 比较日期
const date1 = new Date(2023, 0, 1);
const date2 = new Date(2023, 0, 2);
console.log(date1 < date2); // true
// 日期差值(毫秒)
const diff = date2 - date1;
console.log(diff / (1000 * 60 * 60 * 24)); // 1(天)
// 添加天数
function addDays(date, days) {
const result = new Date(date);
result.setDate(result.getDate() + days);
return result;
}
// 计算两个日期之间的天数差
function dayDiff(date1, date2) {
return Math.abs(date1 - date2) / (1000 * 60 * 60 * 24);
}
// 检查是否是闰年
function isLeapYear(year) {
return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
}
// 获取月份的天数
function getDaysInMonth(year, month) {
return new Date(year, month + 1, 0).getDate();
}
对于更复杂的日期操作,可以考虑使用第三方库:
// 获取当前时区偏移(分钟)
const timezoneOffset = new Date().getTimezoneOffset();
// 转换为特定时区的时间
function toTimeZone(date, timeZone) {
return new Date(date.toLocaleString("en-US", { timeZone }));
}
JavaScript 的 Date 对象提供了基本的日期和时间功能,但对于复杂的日期操作,使用专门的库通常会更方便和可靠。