DEV Community

Cover image for How to get yesterday’s date in JavaScript without a library
Reza Lavarian
Reza Lavarian

Posted on • Originally published at decodingweb.dev

How to get yesterday’s date in JavaScript without a library

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:

  1. Get the current date by Date constructor
  2. Get the day of the month via Date.prototype.getDate()
  3. Subtract 1 day from it
  4. 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)
Enter fullscreen mode Exit fullscreen mode

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))
Enter fullscreen mode Exit fullscreen mode

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)

Collapse
 
naucode profile image
Al - Naucode

Great article, you got my follow, keep writing!