📌  相关文章
📜  JavaScript计算两个日期之间的时差(1)

📅  最后修改于: 2023-12-03 14:42:42.065000             🧑  作者: Mango

JavaScript计算两个日期之间的时差

在开发过程中,我们有时需要计算两个日期之间的时差。这个时候,可以使用JavaScript来实现。JavaScript提供了一些内置函数和API来计算日期之间的时差。

计算日期之间的天数

我们可以使用getDate()方法来获取自1970年1月1日以来某个日期的天数。然后,我们可以将两个日期之间的天数相减,就可以得到它们之间的天数差。

const date1 = new Date('2021-08-01');
const date2 = new Date('2021-08-10');
const diffTime = Math.abs(date2.getTime() - date1.getTime());
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); 
console.log(diffDays) // 9
  1. 使用Date对象创建日期,比如日期1是2021年8月1日,日期2是2021年8月10日.

    const date1 = new Date('2021-08-01');
    const date2 = new Date('2021-08-10');
    
  2. 使用getTime()方法获取自1970年1月1日以来的某一个日期的毫秒数。

    const diffTime = Math.abs(date2.getTime() - date1.getTime());
    
  3. 将两个日期之间的毫秒数差除以(1000 * 60 * 60 * 24)。这样就可以获得它们之间的天数差。

    const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
    

最后,我们得到了日期1和日期2之间的天数差。

计算日期之间的小时数、分钟数和秒数

我们可以使用同样的方法来计算日期之间的小时数、分钟数和秒数。只需将公式中的(1000 * 60 * 60 * 24)修改为(1000 * 60 * 60)(1000 * 60)或1000即可。

const date1 = new Date('2021-08-01 10:30:00');
const date2 = new Date('2021-08-02 12:40:10');
const diffTime = Math.abs(date2.getTime() - date1.getTime());
const diffHours = Math.floor(diffTime / (1000 * 60 * 60)); 
const diffMinutes = Math.floor((diffTime % (1000 * 60 * 60)) / (1000 * 60)); 
const diffSeconds = Math.floor((diffTime % (1000 * 60)) / 1000); 
console.log(diffHours + " Hours " + diffMinutes + " Minutes " + diffSeconds + " Seconds "); // 26 Hours 10 Minutes 10 Seconds

与计算天数不同的是,我们需要计算余数。我们使用%运算符来计算余数,然后再使用整除运算符/来计算小时、分钟和秒。

总结

在JavaScript中,我们可以使用内置函数和API来计算日期之间的时差。我们可以使用getDate()方法获取自1970年1月1日以来的某一个日期的天数、小时数、分钟数和秒数。然后,我们可以将两个日期之间的差值进行运算,最终得到它们之间的时差。