首页 > 解决方案 > 函数返回带有许多小数位的奇数答案之间的天数

问题描述

我的计算器上有这个功能,用于确定两天之间的日期数:

    function DaysBetween(str1, str2) {
    var date1 = str1;
    var date2 = str2;

    diffDays = (new Date(date2).getTime() - new Date(date1).getTime())/(1000 * 60 * 60 * 24);

    if (diffDays == 0) {
        diffDays = 1;
    }

    return diffDays;
}

但是当我输入 '10/10/2019', '11/13/2019' 的值时,它给了我一个奇怪的输出 34.041666666666664

这是一个小提琴:

function DaysBetween(str1, str2) {
    var date1 = '10/10/2019';
    var date2 = '11/13/2019';

    diffDays = (new Date(date2).getTime() - new Date(date1).getTime())/(1000 * 60 * 60 * 24);
    
    if (diffDays == 0) {
    	diffDays = 1;
    }

    console.log (diffDays);
}
<button onclick="DaysBetween()">
Test!
</button>

有人可以帮我解决这个问题吗?谢谢。

标签: javascriptdate

解决方案


你需要使用 Math.round()

function DaysBetween(date1, date2) {
    diffDays = (new Date(date2).getTime() - new Date(date1).getTime())/(1000 * 60 * 60 * 24);
    console.log (Math.round(diffDays));
}

DaysBetween('10/10/2019', '11/13/2019')

34


推荐阅读