Seems that solution from How to calculate the number of days between two dates using JavaScript? work fine exept for case : 30.4.2016 - 1.5.2016 it calculate 2 days ( in real 1 ) 29.2.2016 - 1.3.2016 it calculate 3 days ( in real 1 )
May be someone already found solution for these cases ?
This function from link
function count_days(){ // Expecting resuls: positive when date1 > date2 ; negative when date1 < date2
var $obj = "dd.mm.YYYY";
var $obj2 = "dd.mm.YYYY";
if($obj2.value){
$start=$obj.value.split(".");
var date1 = new Date($start[2],$start[1],$start[0]); // Converted date to ("YYYY,mm,dd")
var $stop=$obj2.value.split(".");
var date2 = new Date($stop[2],$stop[1],$stop[0]); // Converted date to ("YYYY,mm,dd")
var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var diffDays = (date2.getTime() - date1.getTime())/(oneDay);
if(diffDays >= 0){
return Math.abs(diffDays)+1;
} else {
return diffDays-1;
}
}
return false; // No date2 nothing to compare
}
// Expecting resuls in full days (24h):
//(5.5.2016 - 5.5.2016) = 1 day (days equal)
//(29.2.2016 - 1.3.2016) = 1 day
//(30.4.2016 - 1.5.2016) = 1 day
//(4.5.2016 - 5.5.2016) = 2 days
//(29.2.2016 - null) = False
//(1.3.2016 - 29.2.2016) = -1 day
//(1.5.2016 - 30.4.2016) = -1 day
//(5.5.2016 - 4.5.2016) = -2 day