herbie
herbie

Reputation: 367

How to get the date for a specific day using javascript

Using the current date new Date(), I would like to calculate the date for the following Wednesday using Javascript.

For example, the current date is today:

"Sun Apr 18 2022 15:00:00 GMT"

What I would like to do is get the date for the following Wednesday, which would be:

"Wed Apr 20 2022 15:00:00 GMT"

If the current day is a Wednesday, I would like to calculate the date for the following Wednesday.

How could I achieve this?

Upvotes: 0

Views: 76

Answers (2)

JSmart523
JSmart523

Reputation: 2497

Whenever I need to find something in JavaScript, I search the internet and prefix "mdn " to search the Mozilla development site. For example, searching Google for "mdn weekday" will give a result pointing to documentation for Date.prototype.getDay().

I would likely end up with something like this:

function daysToWednesday(dt) {
  const day = Date(dt).getDay();
  if (day < 3) {
    return 3 - day;
  } else {
    return 10 - day;
  }
}

function nextWednesday(dt) {
  const ret = Date(dt);
  ret.setDate(ret.getDate() + daysToWednesday(ret));
  return ret;
}

Upvotes: 1

Siva Kondapi Venkata
Siva Kondapi Venkata

Reputation: 11001

Use the getDay method which will give day of the week (0 - 6, from sunday to saturday). (Wednesday is day 3)

function nextWednesday(date) {
  const day = date.getDay();
  // getDay returns between 0 - 6. Sunday - Saturday.
  // 3 is Wednesday
  let daysToAdd = 0;
  if (day < 3) {
    daysToAdd = 3 - day;
  } else {
    daysToAdd = 7 - day + 3;
  }
  return new Date(date.getTime() + daysToAdd * 24 * 60 * 60 * 1000);
}


const today = new Date();

console.log('today: ', today.toString());
console.log('following wednesday: ',  nextWednesday(today).toString())

Upvotes: 4

Related Questions