Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回多个小数点的奇数答案的函数之间的天数_Javascript_Date - Fatal编程技术网

Javascript 返回多个小数点的奇数答案的函数之间的天数

Javascript 返回多个小数点的奇数答案的函数之间的天数,javascript,date,Javascript,Date,我的计算器上有此功能,用于确定两天之间的日期数: 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;

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

    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.0416664

这是一把小提琴:

功能日之间(str1、str2){
风险值日期1='2019年10月10日';
风险值日期2='2019年11月13日';
diffDays=(新日期(date2).getTime()-新日期(date1.getTime())/(1000*60*60*24);
如果(diffDays==0){
diffDays=1;
}
console.log(diffDays);
}

测验
您需要使用Math.round()

日期间隔(“2019年10月10日”、“2019年11月13日”)

三十四

你需要使用Math.round()

日期间隔(“2019年10月10日”、“2019年11月13日”)

三十四


因为夏令时将在11月3日结束,所以那天会有一个额外的小时。您可能会更好地将字符串解析为其年、月和日组件,然后只需执行
(Date.UTC(y0,m0-1,d0)-Date.UTC(y1,m1-1,d1))/8.64e7
。UTC日期始终为24小时,因此不受夏令时的影响。因为夏令时在11月3日结束,所以当天会有额外的一小时。您可能会更好地将字符串解析为其年、月和日组件,然后只需执行
(Date.UTC(y0,m0-1,d0)-Date.UTC(y1,m1-1,d1))/8.64e7
。UTC日期始终为24小时,因此不受夏令时的影响。
Math.round()
会更好
ceil()
将增加一整天的时间,即使这只是额外的一小时。正确答案应该是
34
,而不是
35
会更好
ceil()
将增加一整天的时间,即使这只是额外的一小时。正确答案应该是
34
,而不是
35
function DaysBetween(date1, date2) {
    diffDays = (new Date(date2).getTime() - new Date(date1).getTime())/(1000 * 60 * 60 * 24);
    console.log (Math.round(diffDays));
}