一、日期格式化
日期比较的首要条件是将日期转换成可比较的格式。在JavaScript中,我们常用的日期格式为年-月-日(YYYY-MM-DD)和秒数(1970年1月1日起的毫秒数)。日期格式化包括两个方面:将日期对象转换为字符串和将字符串转换为日期对象。
1.将日期对象转换为字符串
const now = new Date(); console.log(now.toISOString()); // 输出:2021-04-30T05:44:51.340Z
使用toISOString()方法将日期对象转换为ISO标准的日期字符串。除了toISOString()方法,还可以使用toLocaleDateString()、toLocaleString()等方法,不同的方法适用于不同的场景。
2.将字符串转换为日期对象
const dateString = '2021-04-30'; const date = new Date(dateString); console.log(date); // 输出:Fri Apr 30 2021 08:00:00 GMT+0800 (中国标准时间)
使用Date()构造函数将字符串转换为日期对象。需要注意的是,字符串的格式必须符合ISO标准,否则会出现不可预知的错误。
二、日期比较
日期比较是指对两个日期进行大小比较或间隔计算。在JavaScript中,我们可以使用比较运算符(>、<、==等)进行大小比较,使用数学运算符进行间隔计算。
1.日期大小比较
const date1 = new Date('2021-04-30'); const date2 = new Date('2021-05-01'); if (date1 < date2) { console.log('date1 在 date2 之前') } else { console.log('date1 在 date2 之后') }
使用比较运算符对两个日期进行大小比较。在比较大小之前,需要将日期转换为可比较的格式(比如毫秒数或UTC时间戳)。
2.日期间隔计算
const date1 = new Date('2021-04-30'); const date2 = new Date('2021-05-01'); const interval = Math.abs(date2 - date1) / (1000 * 60 * 60 * 24); console.log(interval); // 输出:1
使用数学运算符对两个日期进行间隔计算。需要注意的是,日期之间的间隔计算需要将日期转换为毫秒数,再进行数学运算。
三、日期运算
日期运算是指对一个日期进行增减操作,得到一个新的日期。在JavaScript中,我们可以使用set方法和get方法对日期对象进行操作。
1.日期增减操作
const date = new Date(); date.setFullYear(date.getFullYear() + 1); console.log(date.toISOString()); // 输出:2022-04-30T05:44:51.340Z
使用set方法对日期对象进行增减操作。set方法包括setFullYear()、setMonth()、setDate()等,表示对年、月、日等不同部分进行操作。
2.获取日期部分
const date = new Date(); const year = date.getFullYear(); const month = date.getMonth() + 1; const day = date.getDate(); console.log(`${year}-${month}-${day}`); // 输出:2021-04-30
使用get方法获取日期对象的不同部分。get方法包括getFullYear()、getMonth()+1、getDate()等,注意getMonth()方法返回的是0~11之间的整数,需要加1才是实际月份。