✋ Update: This post was originally published on my blog decodingweb.dev, where you can read the latest version for a 💯 user experience. ~reza
How to get yesterday’s date using JavaScript?
To get yesterday’s date in JavaScript, you need to get today’s date and use setDate()
of the Date object to subtract a day from it.
It’s quite easy to implement; You can do it in four steps:
- Get the current date by
Date
constructor - Get the day of the month via
Date.prototype.getDate()
- Subtract 1 day from it
- Use
Date.prototype.setDate()
to set the result as the day of the month
Let’s write the code:
let currentDate = new Date()
// Instantiate another object (based on the current), so we won't mutate the currentDate object
let yesterday = new Date(currentDate)
yesterday.setDate(yesterday.getDate() - 1)
console.log(yesterday)
In the above example, we get the current date (today in this case). Then, we instantiate another date object to avoid mutating the currentDate
object.
The getDate()
method returns the day of the month for our date object. The return value is an integer number between 1
and 31
.
Next, we subtract 1
from the value returned by getDate()
and pass it to setDate()
as an argument.
If the result is outside the acceptable range for the respective month, setDate()
will update the Date object accordingly (by changing it to the next or previous month respectively).
For instance, if we're on the first day of the month, and we subtract a day, the result would be the last day of the previous month - instead of 0
.
How do I get yesterday's timestamp?
To get the yesterday's date in Unix Timestamp, first you need to call Date.prototype.valueOf()
on your Date object. And since the returned value is in milliseconds, you'll have to divide it by 1000
:
let currentDate = new Date()
// Instantiate another object (based on the current), so we won't mutate the currentDate object
let yesterday = new Date(currentDate)
yesterday.setDate(yesterday.getDate() - 1)
console.log(Math.floor(yesterday.valueOf() / 1000))
It's important to return only elapsed seconds as an integer value; That's why we used Math.floor()
, and not Math.round()
.
And that's how you get yesterday's date in JavaScripts hope you found this quick guide helpful!
Thanks for reading.
❤️ You might like:
Top comments (1)
Great article, you got my follow, keep writing!