js date实现
获取当前日期和时间
使用 new Date() 创建日期对象,默认返回当前日期和时间:
const now = new Date();
console.log(now); // 输出当前日期和时间(如:2023-09-20T08:30:00.000Z)
创建指定日期
通过传递年、月、日等参数创建特定日期(月份从0开始,0表示1月):
const specificDate = new Date(2023, 8, 20); // 2023年9月20日
console.log(specificDate); // 2023-09-20T00:00:00.000Z
解析日期字符串
支持ISO 8601格式(如 YYYY-MM-DD)或其他标准格式:

const dateFromString = new Date("2023-09-20");
console.log(dateFromString); // 2023-09-20T00:00:00.000Z
获取日期组件
通过方法获取年、月、日、星期等:
const date = new Date();
const year = date.getFullYear(); // 2023
const month = date.getMonth() + 1; // 9(月份需+1)
const day = date.getDate(); // 20
const dayOfWeek = date.getDay(); // 3(星期三,0为星期日)
设置日期组件
使用 setFullYear、setMonth 等方法修改日期:

const date = new Date();
date.setFullYear(2024);
date.setMonth(11); // 设置为12月
console.log(date); // 2024-12-20T08:30:00.000Z
格式化日期为字符串
使用 toLocaleDateString 或自定义格式化:
const date = new Date();
console.log(date.toLocaleDateString("zh-CN")); // 2023/9/20
console.log(`${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`); // 2023-9-20
计算日期差值
通过时间戳(毫秒数)计算日期差:
const date1 = new Date(2023, 8, 1);
const date2 = new Date(2023, 8, 20);
const diffDays = (date2 - date1) / (1000 * 60 * 60 * 24);
console.log(diffDays); // 19
处理时区问题
使用 getTimezoneOffset 获取本地时区偏移(分钟):
const offset = new Date().getTimezoneOffset() / 60;
console.log(`UTC偏移:${offset}小时`); // 如 -8(东八区)
注意事项
- 月份范围是0-11,实际月份需加1。
- 日期对象是可变的,直接修改会影响原对象。
- 跨浏览器解析字符串时建议使用ISO格式(
YYYY-MM-DD)。






