【发布时间】:2022-02-21 22:37:16
【问题描述】:
我正在重新打开此线程并提供更多信息。
有 2 月 28 天,结果是 0.933... 个月,而不是我期望在这些有 28/29/31 天的月份中得到的“1 个月”(见附件截图:
)
如何自动区分 2 个日期(即使该月有 28、30 或 31 天)并得到结果“1”而不是 0.9333?
下面是我使用的代码:
var date1 = new Date("02/01/2022");
var date2 = new Date("03/01/2022");
// To calculate the time difference of two dates
var Difference_In_Time = date2.getTime() - date1.getTime();
// To calculate the no. of days between two dates
var Difference_In_Days = Difference_In_Time / (1000 * 3600 * 24);
// To calculate the no. of months between two dates
var Difference_In_Months = Difference_In_Time / (1000 * 3600 * 24 * 30);
console.log(Difference_In_Time);
console.log(Difference_In_Days);
console.log(Difference_In_Months);
我想对计算“每月最短持续时间”的字段进行计算。
在整月 (30) 的情况下,计算很容易(结束日期-开始日期), 但在 31 或 28 天的月份中,减法不是很准确。
非常感谢!
RMMA
【问题讨论】:
-
首先最重要的建议:不要使用 w3schools。如果您查看您的代码,您会发现它每月的天数总是使用 30 倍。所以很自然地,结果会关闭。
-
您必须通知您正在处理的月份中有多少天 (
(1000 * 3600 * 24 * *here*))。但是,当您计算持续时间时,结果 0.933 是正确的。 -
好的,所以 2022 年 3 月 1 日和 2 月 1 日之间的差异是 1 个月。 3 月 2 日和 2 月 1 日之间的预期差异是多少? 1 1/28?在 4 月 2 日到 3 月 1 日之间? 1 1/31?请说明您希望结果有多精确以及为什么重要。还是您只是在寻找“x 个月和 y 天”?
-
欢迎来到 Stack Overflow!欢迎来到堆栈溢出!请访问help center,使用tour 了解内容和How to Ask。如果您遇到困难,请发布您尝试的最小可重现示例,并使用
[<>]snippet editor 记录输入和预期输出。但首先:find possible dupes -
感谢您的所有回答,对于“新手”的问题,我深表歉意。
标签: javascript html sharepoint