How to find the difference between two dates using Javascript

I want extension days to be displayed on a specific date, so I am trying to determine a specific date with today's date. but this does not work here code If the date for next month is 27, how can I get the remaining days to go

var date2=new Date(); var date1=27/5/2012; var diff = date1.getDate()-date2.getDate(); var date_reaming = diff.getDate(); document.write(date_reaming + 'days to go'); 
+6
source share
6 answers

Here is the answer, I found it from here my js script is here

 var d = new Date(); var curr_date = d.getDate(); var curr_month = d.getMonth();/* Returns the month (from 0-11) */ var curr_month_plus= curr_month+1; /* because if the month is 4 it will show output 3 so we have to add +1 with month*/ var curr_year = d.getFullYear(); function dstrToUTC(ds) { var dsarr = ds.split("/"); var mm = parseInt(dsarr[0],10); var dd = parseInt(dsarr[1],10); var yy = parseInt(dsarr[2],10); return Date.UTC(yy,mm-1,dd,0,0,0); } function datediff(ds1,ds2) { var d1 = dstrToUTC(ds1); var d2 = dstrToUTC(ds2); var oneday = 86400000; return (d2-d1) / oneday; } var a =curr_month_plus+ '/' + curr_date + '/' + curr_year; var b; b = "5/26/2012"; document.write(+datediff(a,b)+" day(s)<br>"); 
+3
source

Your code

 date1=27/5/2012 

Actually means 27 divided by 5 divided by 2012. It is equivalent to writing

 date1 = 0.0026838966202783303 

date1 will be a number, and this number does not have a getDate method.

If you declared them as actual date objects instead

 var date2 = new Date(2012, 3, 19); var date1 = new Date(2012, 4, 27); 

Could you fulfill

 var diff = date1 - date2; 

This will give you the difference in milliseconds between the two dates.

Here you can calculate the number of days, for example:

 var days = diff / 1000 / 60 / 60 / 24; 
+14
source
 function getDateDiff(date1, date2, interval) { var second = 1000, minute = second * 60, hour = minute * 60, day = hour * 24, week = day * 7; date1 = new Date(date1).getTime(); date2 = (date2 == 'now') ? new Date().getTime() : new Date(date2).getTime(); var timediff = date2 - date1; if (isNaN(timediff)) return NaN; switch (interval) { case "years": return date2.getFullYear() - date1.getFullYear(); case "months": return ((date2.getFullYear() * 12 + date2.getMonth()) - (date1.getFullYear() * 12 + date1.getMonth())); case "weeks": return Math.floor(timediff / week); case "days": return Math.floor(timediff / day); case "hours": return Math.floor(timediff / hour); case "minutes": return Math.floor(timediff / minute); case "seconds": return Math.floor(timediff / second); default: return undefined; } } console.log(getDateDiff('19/04/2012', '27/5/2012', 'days')); 
+8
source

jQuery has no built-in date management features. Try: http://momentjs.com/

+4
source

I think you can subtract it:

 var date2 = new Date(2012, 3, 19); // 1st argument = year, 2nd = month - 1 (because getMonth() return 0-11 not 1-12), 3rd = date var date1 = new Date(2012, 4, 27); var distance = date1.getTime() - date2.getTime(); distance = Math.ceil(distance / 1000 / 60 / 60 / 24); // convert milliseconds to days. ceil to round up. document.write(distance); 
+3
source

Please understand what jQuery is for.

jQuery is a fast and concise JavaScript library that simplifies HTML document processing, event processing , animation, and Ajax interactions for fast web development.

Do you want to use basic Javacript or like Juan G. Hurtado points to another library such as momentjs .

+2
source

Source: https://habr.com/ru/post/913613/


All Articles