【问题标题】:Compare two IsoString date in javascript在javascript中比较两个IsoString日期
【发布时间】:2020-05-07 17:58:40
【问题描述】:

我想按天比较两个 Iso 字符串日期,日期格式如下:

**

“2020-05-07T15:51:28.124Z”

**

我做了这个函数来得到按天比较的结果:

  compareDatesByDays(higherDate, lowerDate) {
    const diffTime = Math.abs(higherDate - lowerDate)
    const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))

    return diffDays
  }

Math.abs 给出 NaN,我认为这不适用于字符串 iso 日期!!

【问题讨论】:

标签: javascript date iso toisostring


【解决方案1】:

你可以试试这个

  function compareDatesByDays(higherDate, lowerDate) {
    const d1 = new Date(higherDate);
    const d2 = new Date(lowerDate);
    const diffTime = Math.abs(d1.getTime() - d2.getTime());
    const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

    return diffDays;
  }
  console.log(compareDatesByDays("2020-05-07T15:51:28.124Z", "2020-05-03T15:51:28.124Z")); // -> 4

【讨论】:

    【解决方案2】:

    您可能希望使用库而不是标准的 javascript 日期。最受欢迎的是moment.js

    在moment.js中:

    moment(higherDate).diff(lowerDate, 'days') // returns int
    

    https://momentjs.com/docs/#/displaying/difference/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 2012-09-02
      • 1970-01-01
      • 2015-01-30
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多