[英]how to make calculation of days based on 2 dates using angular12
我正在使用 angular12,这里基于 2 个日期的天数计算在 chrome 上工作正常,但同样的事情在 firefox 中失败了。
TS:使用 Moment,在 firefox 下给出无效日期错误:
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));
var Difference_In_Days = Math.ceil(Math.abs(secondDate - firstDate) / (1000 * 60 * 60 * 24));
这在 firefox 中给出 NAN,但在 chrome 中给出 2。
看看这个答案。 Firefox 需要yyyy-mm-dd
格式的日期。 如果您进行更改,它在 Firefox 和 Chrome 中都有效。
仅供参考,您不能在字符串上使用Math.ceil
,您需要先将它们转换为毫秒。
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);
}
要在结果中包含负数,请从 function 中删除Math.abs
。
const Difference_In_Days = Math.ceil((firtDateMs - secondDateMs) / (1000 * 60 * 60 * 24));
铬控制台:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.