user1493948
user1493948

Reputation:

Is there a way that I can get the (first Sunday in October – first Sunday in April) with moment.js?

I know that I can use this for the start of the month moment().startOf('month') but I need the first Sunday of the month.

Upvotes: 1

Views: 5389

Answers (3)

Salman
Salman

Reputation: 1040

Here is the sample using js to get the first sunday of any month or year

function firstSunday(month, year) {
    let tempDate = new Date();
    tempDate.setHours(0,0,0,0);
    tempDate.setMonth(month);
    tempDate.setYear(year);
    tempDate.setDate(1);

    let day = tempDate.getDay();
    let toNextSun = day !== 0 ? 7 - day : 0;
    tempDate.setDate(tempDate.getDate() + toNextSun);
    
    return tempDate.toDateString();
}

console.log("april first sunday" , firstSunday(3 , 2020));
console.log("oct first sunday" , firstSunday(9 , 2020))

Upvotes: 2

Sreekanth
Sreekanth

Reputation: 3130

You could do this:

function getFirstWeekDay(dateString, dayOfWeek) {
    var date = moment(dateString, "YYYY-MM-DD");

    var day = date.day();
    var diffDays = 0;

    if (day > dayOfWeek) {
      diffDays = 7 - (day - dayOfWeek);
    } else {
      diffDays = dayOfWeek - day
    }

    console.log(date.add(diffDays, 'day').format("YYYY-MM-DD"));

  }
  //Pass in the first of a given calendar month and the day weekday
getFirstWeekDay("2016-10-01", 0);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>

Upvotes: 1

Ayan
Ayan

Reputation: 17

Please check this Code.

var d = new Date();
var first_week = d.getDate();
var the_day = d.getDay();

if(first_week <= 7 && the_day == 0)
{
  // It's the first Sunday of the month
  // Do more stuff here
}

Upvotes: 1

Related Questions