我是這個指南Get the First Weekday of the Month with moment.js時刻如何獲得上個月(12月)的最後一個工作日
下,它工作正常拿到第一個月的第一個週日(1月)
但是,當我試圖使用相反。我將獲得12月份的最後一個工作日。我試圖改變加入減和分而不是工作
我是這個指南Get the First Weekday of the Month with moment.js時刻如何獲得上個月(12月)的最後一個工作日
下,它工作正常拿到第一個月的第一個週日(1月)
但是,當我試圖使用相反。我將獲得12月份的最後一個工作日。我試圖改變加入減和分而不是工作
可以使用moment-business-days做工作日相關處理。如果你正在做更多這樣的處理而不僅僅是這個問題,那將會容易得多。
var moment = require('moment-business-days');
// Set the date for december. You can use this for any month.
// Get array of business days for the month
var businessDays=moment('01-12-2017', 'DD-MM-YYYY').monthBusinessDays();
// Get last business day from the array
var lastBusinessDay = businessDays[businessDays.length-1]._d;
console.log(lastBusinessDay);
var dateFrom = moment().subtract(1, 'months').endOf('month').format("dddd")
alert(dateFrom);
對於一年使用本
var year = moment().subtract(1, 'months').endOf('month').get('year');
alert(year);
使用這種格式與「DDDD」。
因此,對於商業週日使用「時刻業務」library。
工作fiddle
我認爲'週日',OP的意思是'週一至週五只有 – xbonez
是啊我得到了星期六,當我編輯它是2016的格式,這將是偉大的,如果我們得到最新的一年:) – wiwit
編輯我的答案年以及更新的小提琴以及 – user3775217
/*
get last day of the year and add days:
0 : if not sunday/saturday
-2 : if sunday
-1 : if saturday
*/
var eom = moment().utc().endOf('year');
eom.add((eom.day() % 6 !== 0) ? 0 : (eom.day() === 0) ? -2 : -1, 'day');
/* Testing for every last week day of the month .. */
var eom = null; /* store end-of-month */
var log = '';
var i = 0;
/* loop for all 12 months from jan - dec */
while (i < 12) {
\t eom = moment().utc().month(i).endOf('month');
\t log = eom.format('LLLL') + ' ~~~ ';
\t eom.add((eom.day() % 6 !== 0) ? 0 : (eom.day() === 0) ? -2 : -1, 'day');
\t log += eom.format('LLLL');
\t console.log(log);
\t i++;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
你能證明你的js? –
源代碼還是你的意思是jsfiddle那樣? – wiwit
是如果你可以請 –