查找每年五月的第二个星期日,具体取决于年份

l33*_*eak 2 javascript date

        var myDate = new Date();
        myDate.setFullYear(year);
        myDate.setMonth(4);
        myDate.setDate(1);

if (myDate.getDay() == 0) {
    myDate.setDate(myDate.getDate()+7);
}
else {
    var daysUntilFirstSunday =  myDate.getDay() % 7;
    var firstSunday = myDate.setDate(myDate.getDate() + daysUntilFirstSunday);
    var secondSunday = myDate.setDate(myDate.getDate() + 7);
}
Run Code Online (Sandbox Code Playgroud)

由于日期已关闭,试图找出我的 if else 语句有什么问题

rvi*_*hne 5

像这样的东西吗?

function getMothersDay (year) {
    var date = new Date(year, 4, 7);
    date.setDate(7 + (7 - date.getDay()));
    return date;
}
Run Code Online (Sandbox Code Playgroud)

它已经过全面测试并且工作完美。它比这里的大多数替代方案更快,因为它只创建一个Date实例并重复使用它。JSFiddle

  • 这不起作用,你忘记了括号。在 JS 中,`+` 的优先级高于三元运算符,`a+b?c:d` 相当于 `(a+b)?c:d`。在第 3 行加法的第二部分添加括号来解决此问题。另外,您可以将“date.getDate()”替换为“1”,它*始终*“1”,因为您在之前的行中设置了它。 (2认同)