有沒有什麼辦法可以使用moment.js庫來獲得當前月份的所有星期一DATES。使用Moment獲取所有星期一的日期,js
我知道我能得到月末有:
moment().endOf('month')
可是如何才能讓當前/任何一個月的所有日期星期一。
我不想在JavaScript默認日期庫中的一些功能。請使用Moment Js Library參考代碼。
有沒有什麼辦法可以使用moment.js庫來獲得當前月份的所有星期一DATES。使用Moment獲取所有星期一的日期,js
我知道我能得到月末有:
moment().endOf('month')
可是如何才能讓當前/任何一個月的所有日期星期一。
我不想在JavaScript默認日期庫中的一些功能。請使用Moment Js Library參考代碼。
我剛讀文檔,並沒有發現返回數組的任何方法,所以你只需要使用循環做
var monday = moment()
.startOf('month')
.day("Monday");
if (monday.date() > 7) monday.add(7,'d');
var month = monday.month();
while(month === monday.month()){
document.body.innerHTML += "<p>"+monday.toString()+"</p>";
monday.add(7,'d');
}
編輯您的答案,使其適用於所有月份。問題是,'.day(「星期一」)'實際上可能會倒退到前一個月,這取決於月份邊界在一週內的情況,所以您必須爲此進行測試。然後,'.add(7,'d')'更清潔,因爲如果需要的話,可以在一個地方更改星期幾。 –
更新
我給這個有點drop in。將它添加到您的網頁:
<script src="https://gist.github.com/penne12/ae44799b7e94ce08753a/raw/moment-daysoftheweek-plus.js"></script>
然後:
moment().allDays(1) //=> [...]
moment().firstDay(1)
等等 - 隨時檢查出source
舊帖子
這個功能應該工作:
function getMondays(date) {
var d = date || new Date(),
month = d.getMonth(),
mondays = [];
d.setDate(1);
// Get the first Monday in the month
while (d.getDay() !== 1) {
d.setDate(d.getDate() + 1);
}
// Get all the other Mondays in the month
while (d.getMonth() === month) {
mondays.push(new Date(d.getTime()));
d.setDate(d.getDate() + 7);
}
return mondays;
}
用法:本月的getMondays()
或不同月份的getMondays(moment().month("Feb").toDate())
。
從jabclab's Stack Overflow Answer,修改爲包含自定義日期參數。
我知道這是舊的,但這個是谷歌首先提出的。
你可以得到所有星期一在使用我的moment-weekdaysin moment.js插件月份:
moment().weekdaysInMonth('Monday');
[如何獲得4週一JS一個月?(HTTP的可能重複:// stackoverflow.com/questions/9481158/how-to-get-the-4-monday-of-a-month-with-js) – JotaBe
@JotaBe請使用Moment Js Library參考代碼。我不想分析JavaScript默認日期庫 –