I have two input dates taking from Date Picker control. I have selected start date 2/2/2012 and end date 2/7/2012. I have written following code for that.
I should get result as 6 but I am getting 5.
function SetDays(invoker) {
var start = $find('<%=StartWebDatePicker.ClientID%>').get_value();
var end = $find('<%=EndWebDatePicker.ClientID%>').get_value();
var oneDay=1000 * 60 * 60 * 24;
var difference_ms = Math.abs(end.getTime() - start.getTime())
var diffValue = Math.round(difference_ms / oneDay);
}
Can anyone tell me how I can get exact difference?
http://momentjs.com/ or https://date-fns.org/
From Moment docs:
or to include the start:
Beats messing with timestamps and time zones manually.
Depending on your specific use case, you can either
a/b.startOf('day')and/ora/b.endOf('day')to force the diff to be inclusive or exclusive at the “ends” (as suggested by @kotpal in the comments).trueto get a floating point diff which you can thenMath.floor,Math.ceilorMath.roundas needed.'seconds'instead of'days'and then dividing by24*60*60.