2013-05-09 90 views
1

我的协会在每个月的第二个和第四个星期二召开会议,我真的很喜欢Javascript代码,所以我不必每两周更新一次我们的网站,下次会议的日期可以自动计算和显示。用JavaScript查找本月的第二个和第四个星期二

我真的很感谢一些帮助,因为我绝对没有使用Javascript的skils,只有CSS和HTML。

+0

http://stackoverflow.com/about – Xotic750 2013-05-11 09:19:31

回答

2

这是一个解决方案

HTML

<ul id="list"></ul> 

的Javascript

function getTuesdays(month, year) { 
    var d = new Date(year, month, 1), 
     tuesdays = []; 

    d.setDate(d.getDate() + (9 - d.getDay()) % 7) 
    while (d.getMonth() === month) { 
     tuesdays.push(new Date(d.getTime())); 
     d.setDate(d.getDate() + 7); 
    } 

    return tuesdays; 
} 

var meetingTuesdays = [], 
    ul = document.getElementById("list"), 
    temp, 
    li, 
    i; 

for (i = 0; i < 12; i += 1) { 
    temp = getTuesdays(i, 2013); 
    meetingTuesdays.push(temp[1]); 
    li = document.createElement("li"); 
    li.textContent = temp[1]; 
    ul.appendChild(li); 

    meetingTuesdays.push(temp[3]); 
    li = document.createElement("li"); 
    li.textContent = temp[3]; 
    ul.appendChild(li); 
} 

console.log(meetingTuesdays); 

jsfiddle

更新:进一步证明你

的Javascript

function getTuesdays(month, year) { 
    var d = new Date(year, month, 1), 
     tuesdays = []; 

    d.setDate(d.getDate() + (9 - d.getDay()) % 7) 
    while (d.getMonth() === month) { 
     tuesdays.push(new Date(d.getTime())); 
     d.setDate(d.getDate() + 7); 
    } 

    return tuesdays; 
} 

var today = new Date(), 
    theseTuesdays = getTuesdays(today.getMonth(), today.getFullYear()), 
    next; 

theseTuesdays.some(function (tuesday, index) { 
    if (index % 2 === 1 && tuesday > today) { 
     next = tuesday; 
     return true; 
    } 

    return false; 
}); 

alert("Our next meeting is on : " + moment(next).format("MMMM Do YYYY")); 

jsfiddle

+0

这几乎是我正在寻找,但我只想要一个显示日期的时间。 – user2367108 2013-05-09 17:14:30

+0

这个想法是: “我们的下一次会议是在:[日期]” – user2367108 2013-05-09 17:14:55

+1

所以,只要选择一个月并根据需要设置结果的格式,这个例子就可以得到所有的结果。使用getTuesdays()函数,它将返回该月份和年份的所有星期二。我整整一年都在为了让你获得一切。我甚至在我的jsfiddle中加入了moments.js文件,使得格式化更简单,http://momentjs.com/ – Xotic750 2013-05-09 17:19:32

相关问题