2017-01-09 61 views

回答

2

可以使用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); 

您可以看到輸出here或克隆和編輯它。 這裏的fiddle

+0

你是否有jsfiddle,所以我可以測試:) – wiwit

+0

我在nodejs中使用它,我不知道如何在小提琴上添加時刻 - 商務日 –

+0

@wiwit我已經添加了鏈接 –

2
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

+0

我認爲'週日',OP的意思是'週一至週五只有 – xbonez

+0

是啊我得到了星期六,當我編輯它是2016的格式,這將是偉大的,如果我們得到最新的一年:) – wiwit

+0

編輯我的答案年以及更新的小提琴以及 – user3775217

2
/* 
    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>

相關問題