Ceci est un plugin moment.js qui vous permet de travailler avec seulement des jours ouvrables (c'est-à-dire du lundi au vendredi). Vous pouvez personnaliser la semaine de travail et également définir des dates personnalisées pour les vacances afin de les exclure d'être considérées comme des jours ouvrables, par exemple les fêtes nationales .
NB: Lors de l'ajout ou de la soustraction des jours ouvrables d'un objet de moment qui tombe un jour non commercial, ce jour ne sera pas compté. Par exemple:
// Utilisation de la semaine de travail par défaut: du lundi au vendredi ([1, 2, 3, 4, 5]) const Samedi = Moment ('2022-01-01'); // Moment <2022-01-01T00: 00: 00 + 01: 00>, samediconst samediplustwo = samedi.businessAdd (2); // Moment <2022-01-04T00: 00: 00 + 01: 00>, mardi
Ce plugin fonctionne à la fois sur le serveur et le côté client.
Ce plugin est basé sur le moment-business.
Toutes les contributions sont les bienvenues.
Merci aux contributeurs d'avoir amélioré ce plugin !!
// Nodejs: exiger au lieu du moment standard PackageVar Moment = require ('Moment-Business-Days'); // vous pourrez utiliser Moment.js comme vous le faites normalement
<! - Browser -> <! - NB: Add After Modich.js -> <script src = "Moment.js"> </ script> <script src = "Moment-Business-Days.js"> </cript>
var Moment = require ('Moment-Business-Days'); var 4 juillet = '2015-07-04'; var Laborday = '2015-09-07'; var boxingday = '2020-12-26'; Moment.updatelocale ('nous', { Vacances: [4 juillet, Laborday], HolidayFormat: «Yyyy-mm-dd», ForcedBusinessdays: [Boxingday], ForcedBusinessDaySformat: 'Yyyy-mm-dd'}); // Moment-Business-Days cessera désormais de considérer ces vacances comme des jours ouvrables, mais compte toujours les jours ouvrables forcés.
var Moment = require ('Moment-Business-Days'); Moment.UpDatelocale ('US', { WorkingWeekdays: [1, 2, 3, 4, 5, 6]}); // définit les jours de 1 (lundi) à 6 (samedi) comme des jours ouvrables. Notez que le dimanche est le jour 0.// En omettant ce paramètre de configuration, les jours ouvrables sont basés sur la défaut des paramètres régionaux
Les objets renvoyés par les méthodes sont des objets Moment.js (sauf .isBusinessDay()
et .businessDiff()
) afin que vous puissiez les gérer avec des méthodes natives Moment.js .
.isHoliday()
=> booléenVérifiez si la date est parmi les vacances spécifiées, et retournez vrai ou faux :
.isBusinessDay()
=> BooleanVérifiez si la date est un jour ouvrable et retournez vrai ou faux :
// 31e est samediMoment ('2015-01-31', 'Yyyy-mm-dd'). IsBusinessDay () // False // 30th is FridayMoment ('2015-01-30', `` Yyyy-mm-dd ' ) .isBusinessDay () // Vrai
.businessDaysIntoMonth()
=> NombreCalculez le montant des jours ouvrables depuis le début du mois du moment.js objet.
var businessayssinceBingingoftheMemth = Moment ('2021-07-01', 'Yyyy-mm-dd'). BusinessDaySintomonth (); // BusinessDaysSinceBingingofthemonth = 1var BusinessDaysSinceBeginningofthemETH = Moment ('2021-08-01', 'yyyy-mm-dd' ) .BusinessDaySIntomonth (); // BusinessDaysSinceBinningoftheMemh = 0var BusinessDaysSincinginningofthemonth = Moment ('2021-08-15', 'Yyyy-mm-dd'). BusinessDaySintomonth (); // BusinessDaysSinceBiningOfthemETH = 10vardaysdaysssiceBeginbingfingofthe). 31 ',' Yyyy-mm-dd '). BusinessDaySIntomonth (); // BusinessDaysSincinginningoftheMemH = 22
.businessDiff()
=> NombreCalculez le montant des jours ouvrables entre les dates.
var diff = Moment ('2017-05-15', 'yyyy-mm-dd'). BusinessDiff (Moment ('2017-05-08', 'yyyy-mm-dd')); // diff = 5
Notez que le comportement par défaut de businessDiff
est de renvoyer une valeur absolue , qui est un écart par rapport au diff
du moment. Pour faire correspondre le comportement de diff
passe true
comme deuxième argument à businessDiff
:
var diff = Moment ('05 -08-2017 ',' yyyy-mm-dd '). BusinessDiff (moment ('05 -15-2017', 'yyyy-mm-dd'), true); // diff = -5
.businessAdd(days)
=> MomentAjoutera le nombre donné de jours sautant les jours non commerciaux, retournant un objet Moment.js :
// 30e est FridayMoment ('2015-01-30', 'Yyyy-mm-dd'). BusinessAdd (3) ._ D // mer février 2015 00:00:00 GMT-0600 (CST)
.businessSubtract(days)
=> MomentSoustrera le nombre donné de jours sautant les jours de non-entreprise, retournant un objet Moment.js :
// 27e est mardiMoment ('27 -01-2015 ',' dd-mm-yyyy '). BusinessSubstract (3) ._ d // jeu 22 janvier 2015 00:00:00 GMT-0600 (CST)
.nextBusinessDay()
=> MomentRécupérera la prochaine date commerciale comme un moment.js objet:
// le prochain jour ouvrable du vendredi 30thMoment («2015-01-30», «Yyy-mm-dd»). Le jour ouvrable suivant du lundi 2ndMoment («2015-02-02», «Yyy-mm-dd»).
Par défaut, seuls 7 jours dans le futur sont vérifiés pour le prochain jour ouvrable. Pour rechercher au-delà de 7 jours, définissez le NextBusinessDaylimit (en nombre) plus élevé.
var Moment = require ('Moment-Business-Days'); Moment.UpDatelocale ('US', { NextBusinessDaylimit: 31});
.prevBusinessDay()
=> MomentRécupérera la date commerciale précédente comme un moment.js objet:
// Jour ouvrable précédent du lundi 2ndMoment ('2015-02-02', 'Yyyy-mm-dd'). PrevBusinessDay () ._ D // ven 30 janvier 2015 00:00:00 GMT-0600 (CST) // Jour ouvrable précédent du mardi 3rdmoment («2015-02-03», «yyyy-mm-dd»). Prevbusinessday () ._ d // lun 02 février 2015 00:00:00 GMT-0600 (CST)
Par défaut, seuls les 7 derniers jours sont vérifiés pour le jour ouvrable précédent. Pour rechercher au-delà de 7 jours, définissez le Prévbusinessdaylimit (en nombre) plus élevé.
var Moment = require ('Moment-Business-Days'); Moment.UpDatelocale ('US', { prevbusinessdaylimit: 31});
.monthBusinessDays()
=> Moment []Récupérez un tableau des jours ouvrables du mois, chacun est un objet Moment.js .
// Days ouvrables du mois janvier 2015Moment ('2015-01-01', 'Yyyy-mm-dd'). Yyyy-mm-dd ', _isutc: false, _pf: {...}, _locale: {...}, _d: thu 01 janvier 2015 00:00:00 GMT-0600 (CST)} {...} , (...)] * /
.monthNaturalDays()
=> Moment [] Est comme .monthBusinessDays()
, mais cette méthode inclura les week-ends dans sa réponse.
.monthBusinessWeeks()
=> Moment [] []Récupérer un éventail de tableaux, ces tableaux sont la représentation d'une semaine d'activité et chaque semaine (tableau) a ses propres jours ouvrables (du lundi au vendredi). Il pourrait y avoir un cas qu'une semaine (tableau) a moins de 5 jours, c'est parce que le mois a commencé au milieu d'une semaine, par exemple: la première semaine de janvier 2015 n'a que deux jours, jeudi 1er et vendredi 2. Chaque jour dans la semaine, les tableaux sont des objets Moment.js.
// Semaines d'activité du mois janvier 2015Moment ('2015-01-01', 'Yyyy-mm-dd'). 'Dd-mm-yyyy', _isutc: false, _pf: [...], _locale: [...], _d: le 01 janvier 2015 00:00:00 GMT-0600 (CST)}, {_isamomentObject: true, _i: '01 -01-2015 ', _f:' dd-mm-yyy ', _isutc: false, _pf: [...], _locale: [...], _d: ven 02 janvier 2015 00: 00:00 GMT-0600 (CST)}], [...]] * /
.monthNaturalWeeks()
=> Moment [] [] C'est comme .monthBusinessWeeks()
, mais cette méthode comprendra les week-ends dans sa réponse.
// For Node.js $ npm install moment-business-days // ...or install and save in package.json $ npm install --save moment-business-days // For bower $ bower install moment-business-days
npm test