JavaScript Date(日期)学习笔记
介绍
JavaScript 中的 Date 对象用于操作日期和时间。Date 对象是一个构造函数,可以通过关键字 new
来创建一个新的实例。有多种方法可以创建一个 Date 对象,例如:
javascriptCopy Codevar today = new Date();
var birthday = new Date('1990-08-12');
var epochTime = new Date(0);
其中,today
是当前的本地时间,birthday
是指定的日期时间(注意日期的格式),而 epochTime
是 Unix 时间戳为 0 时对应的时间。
常用方法
下面介绍一些常用的 Date 方法。
获取日期信息
javascriptCopy Codevar now = new Date();
var year = now.getFullYear(); // 年份,如 2023
var month = now.getMonth() + 1; // 月份,从 0 开始计数,加 1 后表示实际月份
var day = now.getDate(); // 日,从 1 开始计数
var weekday = now.getDay(); // 星期几,从 0 开始计数,0 表示星期日
var hour = now.getHours(); // 小时,0-23
var minute = now.getMinutes(); // 分钟,0-59
var second = now.getSeconds(); // 秒数,0-59
var millisecond = now.getMilliseconds(); // 毫秒数,0-999
设置日期信息
javascriptCopy Codevar now = new Date();
now.setFullYear(2024); // 设置年份为 2024
now.setMonth(5); // 设置月份为 6(从 0 开始计数)
now.setDate(15); // 设置日期为 15
now.setHours(12); // 设置小时为 12
now.setMinutes(30); // 设置分钟为 30
now.setSeconds(45); // 设置秒数为 45
now.setMilliseconds(500); // 设置毫秒数为 500
格式化输出时间
javascriptCopy Codevar now = new Date();
var formatted = now.toLocaleString('zh-CN', { hour12: false }); // 输出格式为 2023/6/2 下午9:37:26
上面的 toLocaleString
可以指定输出日期格式和语言,这里使用的是中文格式。其中 { hour12: false }
参数用于禁用 12 小时制。
实例
下面举两个实例:
计算距离生日还有多少天
javascriptCopy Codevar today = new Date();
var birthday = new Date('1990-08-12');
birthday.setFullYear(today.getFullYear());
if (today > birthday) {
birthday.setFullYear(today.getFullYear() + 1);
}
var diff = Math.ceil((birthday - today) / (1000 * 60 * 60 * 24));
console.log('距离生日还有 ' + diff + ' 天');
上面的代码将生日设为今年的生日,如果已经过了,则设为明年的生日。然后计算距离生日还有多少天,并输出。
计算两个日期之间相差的时间
javascriptCopy Codevar date1 = new Date('2023-06-01');
var date2 = new Date('2023-06-02');
var diff = Math.abs(date1 - date2);
var minutes = Math.floor(diff / (1000 * 60));
console.log('两个日期之间相差 ' + minutes + ' 分钟');
上面的代码计算了两个日期之间相差多少分钟,并输出。注意使用了 Math.abs
方法来取绝对值,因为两个日期的先后顺序不确定。