Я слежу за этим руководством Месяц с moment.js

И работает нормально, чтобы получить первый будний день первого месяца (январь)

Но когда я пытаюсь использовать противоположное. Я получаю последний будний день месяца, который будет декабрь. я пытаюсь изменить добавление в минус и саб, но не работает

1
Deez Nuuts 9 Янв 2017 в 09:15

3 ответа

Лучший ответ

Вы можете использовать моментные рабочие дни для обработки, связанной с рабочими днями. Было бы намного проще, если бы вы выполняли больше такой обработки, а не только эту проблему.

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);

Вы можете просмотреть вывод здесь или клонировать и редактировать его. Вот скрипка

2
Dushyant Bangal 9 Янв 2017 в 14:28
 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".

Поэтому для делового рабочего дня используйте библиотеку.

Рабочая скрипка

2
user3775217 9 Янв 2017 в 06:30
/* 
    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) {
	eom = moment().utc().month(i).endOf('month');
	log = eom.format('LLLL') + ' ~~~ ';

	eom.add((eom.day() % 6 !== 0) ? 0 : (eom.day() === 0) ? -2 : -1, 'day');
	log += eom.format('LLLL');

	console.log(log);
	i++;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
2
Thirueswaran Rajagopalan 9 Янв 2017 в 09:36