您的位置:

日期比较技巧

一、日期格式化

日期比较的首要条件是将日期转换成可比较的格式。在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才是实际月份。