有没有办法可以用 moment.js 获取(十月的第一个星期日 - 四月的第一个星期日)?

问题描述 投票:0回答:3

我知道我可以使用它作为月份的开始 moment().startOf('month') 但我需要该月的第一个星期日。

javascript datetime momentjs
3个回答
2
投票

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

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))


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
投票

请检查此代码。

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
}
© www.soinside.com 2019 - 2024. All rights reserved.