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

A wooden desktop calendar showing 31 of December
Photo by Oleksandr Pidvalnyi. Source: Pexels

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) 

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 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.

Author photo

Hey 👋 I'm a software engineer, an author, and an open-source contributor. I enjoy helping people (including myself) decode the complex side of technology. I share my findings on Twitter: @lavary_

If you read this far, you can tweet to the author to show them you care. Tweet a Thanks

In this article:

Disclaimer: This post might contain affiliate links. I might receive a commission if a purchase is made. However, it doesn’t change the cost you’ll pay.