Search code examples
javascriptdate

Getting the date of next Monday


How can I get the next Monday in JavaScript? I can't find anything of this in the internet and I have also tried a lot of codes and understanding of this but I can't really do it.

Here's my code:

var d = new Date();
var day = d.getDay();
d = new Date(d.setDate(d.getDate() + day + (day == 0 ? -6 : 2)));

Solution

  • This will retrieve the next Monday, returning the current date if already a Monday:

    var d = new Date();
    d.setDate(d.getDate() + (1 + 7 - d.getDay()) % 7);
    console.log(d);
    

    To return the following Monday even if the current date is a Monday:

    var d = new Date();
    d.setDate(d.getDate() + (((1 + 7 - d.getDay()) % 7) || 7));
    console.log(d);