有没有办法可以用moment.js获得(10月的第一个星期日 - 4月的第一个星期天)?

时间:2016-10-22 05:50:01

标签: javascript datetime momentjs

我知道我可以在月初()。startOf('month')使用它,但我需要在这个月的第一个星期日。

3 个答案:

答案 0 :(得分:1)

你可以这样做:

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>

答案 1 :(得分:0)

请检查此代码。

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
}

答案 2 :(得分:0)

以下是使用js获取任何月份或年份的第一个星期日的示例

function firstSunday(month, year) {
    let tempDate = new Date();
    tempDate.setHours(0,0,0,0);
    // first SUNDAY of april
    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))