Dies ist ein Moment. Js Plugin, mit dem Sie nur mit Werktagen arbeiten können (dh Montag bis Freitag). Sie können die Arbeitswoche anpassen und benutzerdefinierte Termine für Feiertage festlegen, um sie von der Annäherung an die Werktage, beispielsweise auf nationale Feiertage , auszuschließen .
NB: Wenn Sie Werktage von einem Moment hinzufügen oder subtrahieren, wird dieser Tag nicht gezählt. Zum Beispiel:
// Verwenden von Standardtagen mit Standardarbeit: Montag bis Freitag ([1, 2, 3, 4, 5]) const Samstag = Moment ('2022-01-01'); // moment <2022-01-01t00: 00: 00+01: 00>, samstagskonst samstagplustwo = samstags.businessAdd (2); // moment <2022-01-04t00: 00: 00+01: 00>, Dienstag
Dieses Plugin funktioniert sowohl auf Server als auch auf der Client -Seite.
Dieses Plugin basiert auf dem Momentjs-Business.
Alle Beiträge sind willkommen.
Vielen Dank an die Mitwirkenden, dass Sie dieses Plugin besser gemacht haben !!
// nodejs: benötigen anstelle von Standard moment packagevar moment = fordert ('moment-Business-Tags'); // du wirst Moment.js wie normalerweise benutzen können
<!-Browser-> <!-NB: Hinzufügen von moment.js-> <script src = "moment.js"> </script> <script src = "moment-Business-Days.js"> </script>
var moment = fordern ('moment-Business-Tag'); var Juli4th = '2015-07-04'; var Laborday = '2015-09-07'; ('uns', { Feiertage: [4. Juli, Laborday], HolidayFormat: 'yyyy-mm-dd', erzwungene Tage: [Boxingday], erzwungenbusinessdaySformat: 'yyyy-mm-dd'}); // Moment-Business-Tage werden nun aufhören, diese Feiertage als Werktage zu betrachten, aber erzwungene Werktage zählen.
var moment = fordert ('moment-Business-Tage'); moment.updatelocale ('us', { WORKSWEEK Days: [1, 2, 3, 4, 5, 6]}); // definiert Tage von 1 (Montag) bis 6 (Samstag) als Werktage. Beachten Sie, dass der Sonntag Tag 0.// ist
Die nach Methoden zurückgegebenen Objekte sind moment.js -Objekte (außer .isBusinessDay()
und .businessDiff()
), damit Sie sie mit moment.js nativen Methoden bewältigen können.
.isHoliday()
=> booleanÜberprüfen Sie, ob das Datum zu den angegebenen Feiertagen gehört, und geben Sie wahr oder falsch zurück:
.isBusinessDay()
=> booleanÜberprüfen Sie, ob das Datum ein Geschäftstag ist, und geben Sie wahr oder falsch zurück:
// 31st ist samstagsmoment ('2015-01-31', 'yyyy-mm-dd'). ) .IsBusinessday () // true
.businessDaysIntoMonth()
=> AnzahlBerechnen Sie die Anzahl der Geschäftstage seit Beginn des Monats des Augenblicks .
var businessdaysSinceBeginningOfthaten = Moment ('2021-07-01', 'yyyy-mm-dd'). BusinessDaysintomonth (); // BusinessDaysSinceBeginNingThonten = 1Var BusinessDayS. . 31 ',' yyyy-mm-dd '). BusinessDaysintomonth (); // BusinessDaysSinceBeginNingHonten = 22
.businessDiff()
=> AnzahlBerechnen Sie die Anzahl der Geschäftstage zwischen den Daten.
var diff = moment ('2017-05-15', 'yyyy-mm-dd'). BusinessDiff (Moment ('2017-05-08', 'yyyy-mm-dd'); // diff = 5
Beachten Sie, dass das Standardverhalten von businessDiff
darin besteht, einen absoluten Wert zurückzugeben, was eine Abreise vom Moment des diff
darstellt. Dem Verhalten des diff
-Passs als zweites Argument für businessDiff
true
:
var diff = moment ('05 -08-2017 ',' yyyy-mm-dd '). BusinessDiff (Moment ('05 -15-2017', 'yyyy-mm-dd'), true); // diff = -5
.businessAdd(days)
=> MomentFügt die angegebene Anzahl von Tagen hinzu, die Tagen von Staffeln überspringen und einen Moment zurückgeben. Js Objekt:
// 30. ist freitagmoment ('2015-01-30', 'yyyy-mm-dd'). BusinessAdd (3) ._ D // Mi 04. Februar 2015 00:00:00 GMT-0600 (CST)
.businessSubtract(days)
=> MomentSubtrahieren Sie die angegebene Anzahl von Tagen, die Nicht-Business-Tage überspringen und ein Moment zurückgeben. Js Objekt:
// 27. ist Dienstagmoment ('27 -01-2015 ',' dd-mm-yyyy '). BusinessSubtract (3) ._ D // Do 22. Januar 2015 00:00:00 GMT-0600 (CST)
.nextBusinessDay()
=> MomentRuft das nächste Geschäftsdatum als einen Moment ab. Js Objekt:
// Nächster Geschäftstag vom Freitag, 30.Thoment ('2015-01-30', 'Yyyy-Mm-Dd'). Nextbusinessday () ._ D // Mon Montag 02 2015 00:00:00 GMT-0600 (CST) // Nächster Geschäftstag vom Montag 2.Moment ('2015-02-02', 'Yyyy-Mm-dd'). Nextbusinessday () ._ D // Di 03. Februar 2015 00:00:00 GMT-0600 (CST)
Standardmäßig 7 Tage in der Zukunft werden für den nächsten Geschäftstag überprüft. Suchen Sie über 7 Tage hinaus den nächsten BusinessdayLimit (als Zahl) höher.
var moment = fordert ('moment-Business-Tage'); moment.updatelocale ('us', { NextBusinessDayLimit: 31});
.prevBusinessDay()
=> MomentRuft das vorherige Geschäftsdatum als Moment.js -Objekt ab:
// Vorheriger Geschäftstag am Montag 2.Moment ('2015-02-02', 'Yyyy-Mm-Dd'). Prevbusinessday () ._ D // Fr 30. Januar 2015 00:00:00 GMT-0600 (CST) // Vorheriger Geschäftstag vom Dienstag 3.Moment ('2015-02-03', 'Yyyy-Mm-dd'). Prevbusinessday () ._ D // Mon Montag 02 2015 00:00:00 GMT-0600 (CST)
Standardmäßig werden nur die letzten 7 Tage für den vorherigen Geschäftstag überprüft. Suchen Sie über 7 Tage hinaus, um die PrävbusinessdayLimit (als Zahl) höher zu setzen.
var moment = fordert ('moment-Business-Tage'); moment.updatelocale ('us', { prevbusinessdayLimit: 31});
.monthBusinessDays()
=> moment []Abrufen Sie eine Reihe der Werktage im Monat ab, jeder ist ein Moment . Js Objekt.
// Geschäftstage im Monat Januar 2015Moment ('2015-01-01', 'yyyy-mm-dd'). MonthBusinessdays ()/*[{_IsamomentObject: True, _i: '2015-01-01', _f: ' Yyyy-mm-dd ', _isutc: false, _pf: {...}, _locale: {...}, _d: du 01. Januar 2015 00:00:00 GMT-0600 (CST)} {...} , (...)]*/
.monthNaturalDays()
=> moment [] Ist wie .monthBusinessDays()
, aber diese Methode wird die Wochenenden in der Reaktion enthalten.
.monthBusinessWeeks()
=> moment [] [] []Wenn diese Arrays eine Array von Arrays abrufen, sind diese Arrays die Darstellung einer Geschäftswochen und jede Woche (Array) haben ihre eigenen Werktage (Montag bis Freitag). Es könnte der Fall sein, dass eine Woche (Array) weniger als 5 Tage hat. Dies liegt daran, dass der Monat mitten in einer Woche begann, zum Beispiel: Die erste Januarwoche 2015 hat nur zwei Tage, Donnerstag, 1. und Freitag, 2.. Jeder Tag in der Woche sind Arrays moment.js Objekte.
// Business Weeks im Monat Januar 2015Moment ('2015-01-01', 'yyyy-mm-dd'). MonthBusinessWeeks ()/*[[_IsamomentObject: TRUE, _I: '01 -01-2015 ', _f: 'Dd-mm-yjyy', _isutc: false, _pf: [...], _locale: [...], _d: du 01. Januar 2015 00:00:00 GMT-0600 (CST)}, {_IsamomentObject: Richtig, _i: '01 -01-2015 ', _f:' dd-mm-yyyy ', _isutc: false, _pf: [...], _locale: [...], _d: Fri 02. Januar 2015 00: 00:00 GMT-0600 (CST)}], [...]]*/
.monthNaturalWeeks()
=> moment [] [] [] Es ist wie .monthBusinessWeeks()
, aber diese Methode wird Wochenenden in der Reaktion enthalten.
// 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