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);
}
试图查明我的if else语句有什么问题,因为日期已经关闭
答案 0 :(得分:4)
这样的东西?
function getMothersDay (year) {
var date = new Date(year, 4, 7);
date.setDate(7 + (7 - date.getDay()));
return date;
}
经过全面测试,效果非常好。它比这里的大多数替代方案更快,因为它只生成一个Date
实例并重新使用它。 JSFiddle
答案 1 :(得分:0)
这就是诀窍:
function getMotherDayDate(year) {
var start = new Date(year, 4, 7),
secondSunday = 7 + (7 - start.getDay());
return new Date(year, 4, secondSunday);
}
修改强>
要回答您修改过的问题:您只是将7 + myDate.getDay()
添加到myDate
的当前日期,因为myDate.getDay() % 7
中的remainder operator只返回myDate.getDay()
何时myDate.getDay() < 7
。
请随意使用上面的代码段。您可以在this jsFiddle查看更多的妈妈节日期。