Tushar Rmesh Saindane
Tushar Rmesh Saindane

Reputation: 350

Get the dates in a week using week number using moment.js

How to get the dates in a array of a specified week ?

Upvotes: 0

Views: 3613

Answers (2)

Vignesh Raja
Vignesh Raja

Reputation: 8751

To get the days of the week using weekNumber, set the week number, get the startOf week and iterate to get each date. If no week is specified, 1st week of the year is used.

var dateformat = "YYYY/MM/DD";
function getWeekDaysByWeekNumber(weeknumber)
{
    var date = moment().isoWeek(weeknumber||1).startOf("week"), weeklength=7, result=[];
    while(weeklength--)
    {
        result.push(date.format(dateformat));
        date.add(1,"day")
    }
    return result;
}

console.log(getWeekDaysByWeekNumber())
console.log(getWeekDaysByWeekNumber(2))
console.log(getWeekDaysByWeekNumber(25))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

To get the days of the week using date, set the startOf week and iterate to get each date. If no date is specified, today's date is used.

var dateformat = "YYYY/MM/DD";
function getWeekDaysByDate(date)
{
    var date = date ? moment(date,dateformat) : moment(), weeklength=7, result=[];
    date = date.startOf("week")
    while(weeklength--)
    {
        result.push(date.format(dateformat));
        date.add(1,"day")
    }
    return result;
}

console.log(getWeekDaysByDate())
console.log(getWeekDaysByDate("2018/07/18"))
console.log(getWeekDaysByDate("2018/06"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

Upvotes: 4

Amadan
Amadan

Reputation: 198324

All the days of the week 16 of 2015 (ISO):

let days = [1, 2, 3, 4, 5, 6, 7]
  .map(d => moment('2015-16-' + d, 'YYYY-W-E'));
console.log(days);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment-with-locales.min.js"></script>

Use YYYY-w-e for locale-sensitive week handling.

Upvotes: 1

Related Questions