Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript get timestamp of 1 month ago [duplicate]

How do I get in unix timestamp of the time 1 month ago from now?

I know I need to use Date()

like image 691
Harry Avatar asked Jun 04 '14 23:06

Harry


2 Answers

A simplistic answer is:

// Get a date object for the current time var d = new Date();  // Set it to one month ago d.setMonth(d.getMonth() - 1);  // Zero the time component d.setHours(0, 0, 0, 0);  // Get the time value in milliseconds and convert to seconds console.log(d/1000|0); 

Note that if you subtract one month from 31 July you get 31 June, which will be converted to 1 July. similarly, 31 March will go to 31 February which will convert to 2 or 3 March depending on whether it's in a leap year or not.

So you need to check the month:

var d = new Date(); var m = d.getMonth(); d.setMonth(d.getMonth() - 1);  // If still in same month, set date to last day of  // previous month if (d.getMonth() == m) d.setDate(0); d.setHours(0, 0, 0, 0);  // Get the time value in milliseconds and convert to seconds console.log(d / 1000 | 0); 

Note that JavaScript time values are in milliseconds since 1970-01-01T00:00:00Z, whereas UNIX time values are in seconds since the same epoch, hence the division by 1000.

like image 134
RobG Avatar answered Sep 25 '22 08:09

RobG


You could take a look at Moment.JS. It has a bunch of useful date related methods.

You could do:

moment().subtract('months', 1).unix()
like image 21
NRaf Avatar answered Sep 26 '22 08:09

NRaf