首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用angular12实现基于2个日期的天数计算

如何利用angular12实现基于2个日期的天数计算
EN

Stack Overflow用户
提问于 2022-12-01 16:28:37
回答 1查看 28关注 0票数 0

我使用的是angular12,在这里,基于2个日期的天数计算与chrome很好,但是在firefox中同样的事情失败了。

TS:使用时间,在firefox下会出现无效的日期错误:

代码语言:javascript
复制
 getDaysCount(firstDate: any, secondDate: any) {
    let first = moment(firstDate, 'MM-DD-YYYY');
    let second = moment(secondDate, 'MM-DD-YYYY');
    return second.diff(first, 'days');
  }

console.log(this.getDaysCount('11-12-2022','11-14-2022));

代码语言:javascript
复制
var Difference_In_Days = Math.ceil(Math.abs(secondDate - firstDate) / (1000 * 60 * 60 * 24));

这在firefox中给出了NAN,而在chrome中给出了2。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-12-01 17:22:41

看看这个answer。Firefox需要yyyy-mm-dd格式的日期。如果你做了改变,它在Firefox和Chrome中都能工作。

FYI,您不能在字符串上使用Math.ceil,您需要首先将它们转换为毫秒。

代码语言:javascript
复制
getDaysCount(firstDate: any, secondDate: any) {
    const firtDateMs = (new Date(firstDate)).getTime();
    const secondDateMs = (new Date(secondDate)).getTime();
    console.log('First date: ' + firstDate, 'In ms:' + firtDateMs);
    console.log('Second date: ' + firstDate, 'In ms:' + secondDateMs);
    const Difference_In_Days = Math.ceil(Math.abs(firtDateMs - secondDateMs) / (1000 * 60 * 60 * 24));
    console.log("Difference_In_Days: ", Difference_In_Days);
  }

若要在结果中包括负数,请从函数中删除Math.abs

代码语言:javascript
复制
const Difference_In_Days = Math.ceil((firtDateMs - secondDateMs) / (1000 * 60 * 60 * 24));

Firefox控制台:

Chrome控制台:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74645148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档