您的位置:

JS比较两个日期大小

一、JS比较两个日期大小用什么

要比较两个日期的大小,可以使用JavaScript中的Date对象。

使用Date对象可以将日期和时间存储为一个数值,并进行常见的日期操作,比如:日期之间的比较、日期的计算、日期的格式化等操作。

二、JS比较日期大小的函数

JavaScript原生提供了可以比较两个日期大小的函数,包括:

1. getTime()

getTime()方法返回一个日期距离格林威治标准时间(1970 年 1 月 1 日)的毫秒数,我们可以通过比较两个日期的毫秒数来判断大小。


const date1 = new Date('2021-08-01');
const date2 = new Date('2021-08-02');

if (date1.getTime() > date2.getTime()) {
  console.log('date1 大于 date2');
} else if (date1.getTime() === date2.getTime()) {
  console.log('date1 等于 date2');
} else {
  console.log('date1 小于 date2');
}

2. valueOf()

valueOf()方法返回一个 Date 对象的基本日期值。该基本日期值等于距离 1970 年 1 月 1 日的毫秒数,我们同样可以通过比较基本日期值来确定两个日期的大小。


const date1 = new Date('2021-08-01');
const date2 = new Date('2021-08-02');

if (date1.valueOf() > date2.valueOf()) {
  console.log('date1 大于 date2');
} else if (date1.valueOf() === date2.valueOf()) {
  console.log('date1 等于 date2');
} else {
  console.log('date1 小于 date2');
}

三、两个日期怎么比较大小JS

除了上述两个日期比较的方法外,我们还可以使用运算符进行比较,这个时候需要注意的是,需要将比较的都转化成同样的格式。


const date1 = '2021-08-01';
const date2 = '2021-08-02';

if (new Date(date1) > new Date(date2)) {
  console.log('date1 大于 date2');
} else if (new Date(date1) === new Date(date2)) {
  console.log('date1 等于 date2');
} else {
  console.log('date1 小于 date2');
}

四、JS日期时间比较

如果需要比较日期和时间,则需要先将时间转化为毫秒数再进行比较。下面是一个计算两个日期间相差多少天的例子。


function getDaysBetweenDates(date1, date2) {
  const oneDay = 24 * 60 * 60 * 1000; // 一个小时的毫秒数
  const firstDate = new Date(date1);
  const secondDate = new Date(date2);

  const diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime()) / (oneDay)));

  return diffDays;
}

console.log(getDaysBetweenDates('2021-08-01 12:00:00', '2021-08-03 12:00:00')); // 2

五、总结

JavaScript中可以使用Date对象进行日期的比较,可以使用getTime()或者valueOf()函数进行比较,也可以将日期转化为毫秒数再比较,不过需要注意时间的格式。