我使用的是angular12,在这里,基于2个日期的天数计算与chrome很好,但是在firefox中同样的事情失败了。
TS:使用时间,在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。
发布于 2022-12-01 17:22:41
看看这个answer。Firefox需要yyyy-mm-dd格式的日期。如果你做了改变,它在Firefox和Chrome中都能工作。
FYI,您不能在字符串上使用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);
}若要在结果中包括负数,请从函数中删除Math.abs。
const Difference_In_Days = Math.ceil((firtDateMs - secondDateMs) / (1000 * 60 * 60 * 24));Firefox控制台:

Chrome控制台:

https://stackoverflow.com/questions/74645148
复制相似问题