Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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_Calendar_Bootstrap Daterangepicker - Fatal编程技术网

如何在javascript中计算两个日期之间的天数

如何在javascript中计算两个日期之间的天数,javascript,calendar,bootstrap-daterangepicker,Javascript,Calendar,Bootstrap Daterangepicker,我陷入了一个问题,那就是,我想从bootstrapdaterangepicker按月计算两个选定日期之间的天数,即。 让我们假设 start date = 07/19/2018 end date = 09/28/2018 结果应该是: number of days in 07 = 13 days number of days in 08 = 31 days number of days in 09 = 28 days total number of days = 72 days 只需区分

我陷入了一个问题,那就是,我想从bootstrap
daterangepicker
按月计算两个选定日期之间的天数,即。 让我们假设

start date = 07/19/2018 
end date  = 09/28/2018
结果应该是:

number of days in 07 = 13 days
number of days in 08 = 31 days
number of days in 09 = 28 days
total number of days = 72 days

只需区分并转换为一天


(新日期(“2018年9月28日”).getTime()-新日期(“2018年7月19日”).getTime()/(24*60*60*1000)+1

您可以使用以下代码获取总天数

let str=新日期(“2018年7月19日”);
租期结束=新日期(“2018年9月28日”);
让totalDays=(end.getTime()-str.getTime())/(1000*60*60*24)以简单的方式。。。(但速度较慢)

var date1=新日期('07/19/2018'),
日期2=新日期('09/28/2018'),
tmp_日期;
如果(日期1>日期2){
tmp_日期=日期1;
date1=date2;
日期2=tmp_日期;
}
var tmp_日期=日期1,
out_date=新日期(+date2+86400000),
日期映射={},年,月,日期,总天数=0;
而(+tmp_日期<+out_日期){
年份=tmp_日期。getFullYear();
month=tmp_date.getMonth()+1;
date=tmp_date.getDate();
如果(!日期\地图[年]){
日期映射[年]={};
}
如果(!日期映射[年][月]){
日期地图[年][月]=1;
}否则{
++日期[年][月];
}
tmp_日期=新日期(+tmp_日期+86400000);
++总工作日;
}
用于(日期映射中的var年){
对于(var日期中的月\映射[年]){
console.log(“+年+”/“+月+”=“+日期”\u映射[年][月]+“天”中的天数);
}
}
log('total number of days='+total_days+'days');
控制台日志(日期和地图);

控制台日志(总天数)@Jason比我强,但这是我的简短版本

let start=新日期(“2018年7月19日”);
租期结束=新日期(“2018年9月28日”);
设div=newdate(start.getFullYear(),start.getMonth()+1,1);
while(end.getFullYear()!==start.getFullYear()| | end.getMonth()!==start.getMonth()){
log((div.getTime()-start.getTime())/(1000*3600*24));
开始=新日期(div.getTime());
div.setMonth(div.getMonth()+1);
}

log((end.getTime()-start.getTime())/(1000*3600*24))这不是我想要的解决方案@Rick,请仔细阅读问题我想在DateRange中分别获得每个月的天数谢谢@Jason的回答这真的很有用,对我很有帮助,你只能理解我的问题并回答。再次感谢。回答得好,更短更快。:)