js日期实现
日期对象创建
使用 new Date() 构造函数创建日期对象,支持多种参数格式:
// 当前日期和时间
const now = new Date();
// 指定时间戳(毫秒)
const timestamp = new Date(1625097600000);
// 日期字符串(注意浏览器兼容性)
const dateStr = new Date("2023-06-30T12:00:00");
// 分别指定年月日等参数(月份从0开始)
const explicitDate = new Date(2023, 5, 30, 12, 0, 0);
日期获取方法
常用获取方法返回日期各部分值:

const date = new Date();
const year = date.getFullYear(); // 四位年份
const month = date.getMonth(); // 0-11
const day = date.getDate(); // 1-31
const hours = date.getHours(); // 0-23
const dayOfWeek = date.getDay(); // 0-6(周日到周六)
// UTC时间相关方法
const utcHours = date.getUTCHours();
日期设置方法
使用对应方法修改日期对象:
date.setFullYear(2024);
date.setMonth(11); // 设置12月
date.setDate(25);
date.setHours(23, 30, 0); // 时可选分秒
日期格式化输出
转换为字符串的不同格式:

date.toString(); // "Fri Jun 30 2023 12:00:00 GMT+0800"
date.toDateString(); // "Fri Jun 30 2023"
date.toISOString(); // "2023-06-30T04:00:00.000Z"
date.toLocaleString(); // 本地化格式,如"2023/6/30 12:00:00"
日期计算
通过时间戳进行日期运算:
// 增加一天
const tomorrow = new Date(date.getTime() + 86400000);
// 计算日期差(天)
const diffDays = Math.floor((date2 - date1) / (1000 * 60 * 60 * 24));
第三方库推荐
对于复杂操作建议使用库:
- moment.js(已停止更新但广泛使用)
- date-fns(模块化现代库)
- Day.js(轻量替代方案)
// Day.js示例
dayjs().add(1, 'month').format('YYYY-MM-DD');
注意事项
- 月份范围是0-11(1月到12月)
- 不同浏览器对日期字符串解析可能有差异
- 时区处理需特别注意,建议使用UTC方法或库处理跨时区场景






