【发布时间】:2019-09-04 07:27:11
【问题描述】:
我试图在几分钟内获得两个日期对象之间的差异。问题是当日期对象相同时,它返回零。但是当差异变为 1 时,差异也返回零。
我的代码如下
let currentDate = Moment();
let takenDateString = `${currentDateString(date)} ${hours}:${minutes} ${isAM ? 'AM' : 'PM'}`
let takenDate = Moment(takenDateString, 'YYYY-MM-DD hh:mm A');
console.log("=======================")
console.log(currentDate.format('YYYY-MM-DD hh:mm A'))
console.log(takenDateString);
console.log(takenDate.diff(currentDate, "minutes"));
console.log("=======================")
这也是日志中打印的内容
Util.js:62 =======================
Util.js:63 2019-09-04 03:26 PM
Util.js:64 2019-09-04 03:26 PM
Util.js:65 0
Util.js:66 =======================
Util.js:62 =======================
Util.js:63 2019-09-04 03:26 PM
Util.js:64 2019-09-04 03:26 PM
Util.js:65 0
Util.js:66 =======================
Util.js:62 =======================
Util.js:63 2019-09-04 03:26 PM
Util.js:64 2019-09-04 03:27 PM
Util.js:65 0
Util.js:66 =======================
Util.js:62 =======================
Util.js:63 2019-09-04 03:26 PM
Util.js:64 2019-09-04 03:28 PM
Util.js:65 1
Util.js:66 =======================
您会看到上面的行为。即使时差为 1,它也返回 0,当它为 2 时,它返回 1。为什么会出现这种奇怪的行为?
【问题讨论】:
-
你可以试试:
takenDate.diff(currentDate, "minutes", true)这将返回一个浮点数而不是一个整数。 -
会不会是以秒为单位的差异,小于60秒的都算0分钟?
-
答案取决于预期结果。
2019-09-04 03:27:00.001 - 2019-09-04 03:26:59.999算不算相差一分钟?
标签: javascript date ecmascript-6 momentjs