通过时刻减去两个日期会导致错误的年份



嘿伙计们遇到了约会问题,我希望多看一双眼睛。任何帮助将不胜感激。

问题:我有一个将在某个日期发生的未来事件,当我从当前日期减去未来的事件日期时,我得到过去的一年和额外的一天。

let evenDate = "12 08 2019, 12:00 am";
let eventFormat = "MM DD YYYY, h:mm a";
const futureEvent = moment(evenDate, eventFormat).utc();
const now = moment().utc();
const timeDiff = moment(futureEvent - now).utc(); // also tried futureEvent.diff(now)
let daysLeft:  moment(timeDiff).format('D') - 1; // have to subtract 1

console.log('futureEvent:', futureEvent);
// Sun Dec 08 2019 00:00:00 GMT-0700 (Mountain Standard Time)

console.log('now:', now);
// Wed Dec 04 2019 10:18:26 GMT-0700 (Mountain Standard Time)

console.log('timeDiff:', timeDiff);
// Sun Jan 04 1970 06:41:33 GMT-0700 (Mountain Standard Time)
let evenDate = "12 08 2019, 12:00 am";
let eventFormat = "MM DD YYYY, h:mm a";
const futureEvent = moment(evenDate, eventFormat);
const now = moment();
const timeDiff = moment.duration(futureEvent.diff(now)); 
let daysLeft = timeDiff.asDays();
const disp = document.getElementById("display");
disp.innerText = daysLeft.toFixed(); // 3.0123 
console.log("futureEvent:", futureEvent.toString());

我只是摆脱了.utc()相同的代码。 使用.duration()并获取.asDays()使用的日期。 笔

最新更新