Possible Duplicate:
Subtract days from a date in javascript
I have got a JavaScript that basically returns a date that is 2 days ago. It is as follows:
var x; var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); var d = new Date(); var twoDaysAgo = d.getDate()-2; //change day here var curr_month = d.getMonth(); var curr_year = d.getFullYear(); var x = twoDaysAgo + "-" + m_names[curr_month] + "-" + curr_year; document.write(x);
Assuming today is 12-December-2012, the above will return the date 10-December-2012. I don't think this will work dynamically as we move forward into a new month, OR, change the day from -2 to -15. It will work only from the 3rd of the month.
How can I modify this so when it is 12-December-2012 today and I want it to return me the date 15 days ago it should be 27-November-2012... and not -3-December-2012?
Any help appreciated. Thanks! I'm a Javascript newbie.
Use the setDate() method to get the previous day of a date, e.g. date. setDate(date. getDate() - 1) .
Here, first, we are defining two dates by using the new date(), then we calculate the time difference between both specified dates by using the inbuilt getTime(). Then we calculate the number of days by dividing the difference of time of both dates by the no. of milliseconds in a day that are (1000*60*60*24).
To check if a date is after another date, compare the Date objects, e.g. date1 > date2 . If the comparison returns true , then the first date is after the second, otherwise the first date is equal to or comes before the second.
If you have a date object, you can set it to two days previous by subtracting two from the date:
var d = new Date(); d.setDate(d.getDate() - 2); console.log(d.toString()); // First of month var c = new Date(2017,1,1); // 1 Feb -> 30 Jan c.setDate(c.getDate() - 2); console.log(c.toString()); // First of year var b = new Date(2018,0,1); // 1 Jan -> 30 Dec b.setDate(b.getDate() - 2); console.log(b.toString());
You can do the following
var date = new Date(); var yesterday = date - 1000 * 60 * 60 * 24 * 2; // current date's milliseconds - 1,000 ms * 60 s * 60 mins * 24 hrs * (# of days beyond one to go back) yesterday = new Date(yesterday); console.log(yesterday);
The Date is available as a number in miliiseconds, you take today subtract two days and create a new date using that number of milliseconds
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With