هذا هو مكون إضافي لحظة. js يتيح لك العمل مع أيام عمل فقط (أي من الاثنين إلى الجمعة). يمكنك تخصيص أسبوع العمل ، وكذلك تعيين تواريخ مخصصة للعطلات لاستبعادها من أن يتم احتسابها على أنها أيام عمل ، على سبيل المثال الأعياد الوطنية .
NB: عند إضافة أو طرح أيام عمل من كائن لحظة يقع في يوم غير تجاري ، لن يتم حساب ذلك اليوم. على سبيل المثال:
// باستخدام أيام الأسبوع الافتراضي: من الاثنين إلى الجمعة ([1 ، 2 ، 3 ، 4 ، 5]) const السبت = لحظة ('2022-01-01') ؛ // لحظة <2022-01-01t00: 00: 00+01: 00> ، السبت السبت plustwo = Saturday.Businessadd (2) ؛ // لحظة <2022-01-04T00: 00: 00+01: 00> ، الثلاثاء
يعمل هذا البرنامج المساعد على كل من الخادم وجانب العميل.
ويستند هذا البرنامج المساعد على تجمع MomentJS.
جميع المساهمات موضع ترحيب.
بفضل المساهمين لجعل هذا البرنامج المساعد أفضل !!
// nodejs: تتطلب بدلاً من لحظة Moment Preglitvar القياسية = '' Moment-Business Days ') ؛ // ستتمكن من استخدام Moment.js كما تفعل عادة
<!-Browser-> <!-nb: add بعد اللحظة. js-> <script src = "moment.js"> </script> <script src = "moment-business-days.js"> </script>
var moment = require ('moment-business ays') ؛ var july4th = '2015-07-04' ؛ var laborday = '2015-09-07' ؛ var boxingday = '2020-12-26' ؛ ('نحن'، { العطل: [4 يوليو ، لابورداي] ، HolidayFormat: 'Yyyy-MM-DD' ، DovelBusinessdays: [يوم الملاكمة] ، DovelBusinessDaysformat: 'Yyyy-MM-DD'}) ؛ // سوف تتوقف الآن عن أعياد تجمع لحظة عن النظر في هذه الإجازات في أيام عمل ، ولكن لا تزال تحسب أيام العمل القسري.
var moment = require ('moment-business ays') ؛ moment.updatelocale ('US' ، { WorkWeekDays: [1 ، 2 ، 3 ، 4 ، 5 ، 6]}) ؛ // يحدد الأيام من 1 (الاثنين) إلى 6 (السبت) كأيام عمل. لاحظ أن يوم الأحد هو اليوم 0.// عند حذف معلمة التكوين هذه ، تعتمد أيام العمل على الافتراضي المحلي
الكائنات التي يتم إرجاعها بالطرق هي Moment.js كائنات (باستثناء .isBusinessDay()
و .businessDiff()
) حتى تتمكن من التعامل معها مع الأساليب الأصلية .
.isHoliday()
=> منطقيةتحقق مما إذا كان التاريخ هو من بين الإجازات المحددة ، وأرجع صحيحًا أو خطأ :
.isBusinessDay()
=> منطقيةتحقق مما إذا كان التاريخ هو يوم عمل ، وأرجع صحيحًا أو خطأ :
. ) .isbusinessday () // صحيح
.businessDaysIntoMonth()
=> الرقماحسب مقدار أيام العمل منذ بداية شهر Moment.js .
var businessdayssinbeginningofthemonth = moment ('2021-07-01' ، 'Yyyy-MM-DD'). BusinessDaysIntomonth () ؛ // BusinessDayssinbeginningofhemonth = 1Var BusinessDayssinceBeginningofhofth- ).businessDaysIntoMonth();// businessDaysSinceBeginningOfTheMonth = 0var businessDaysSinceBeginningOfTheMonth = moment('2021-08-15', 'YYYY-MM-DD').businessDaysIntoMonth();// businessDaysSinceBeginningOfTheMonth = 10var businessDaysSinceBeginningOfTheMonth = moment('2021-08- 31 '،' yyyy-mm-dd '). BusinessDaysIntomonth () ؛ // BusinessDayssinbeginningOfThemonth = 22
.businessDiff()
=> الرقمحساب مقدار أيام العمل بين التواريخ.
var diff = moment ('2017-05-15' ، 'Yyyy-MM-DD'). BusinessDiff (لحظة ('2017-05-08' ، 'yyyy-mm-dd')) ؛ // diff = 5
لاحظ أن السلوك الافتراضي لـ businessDiff
هو إعادة قيمة مطلقة ، وهي خروج عن diff
اللحظة. لتتناسب مع سلوك diff
true
كحجة ثانية لـ businessDiff
:
var diff = moment ('05 -08-2017 '،' Yyyy-MM-DD '). BusinessDiff (لحظة ('05 -15-2017' ، 'Yyyy-mm-dd') ، true) ؛ // diff = -5
.businessAdd(days)
=> لحظةسيضيف العدد المعطى من الأيام التي تخطي أيامًا غير تجارية ، وإعادة لحظة. كائن: JS :
.
.businessSubtract(days)
=> لحظةسوف يطرح العدد المعطى من الأيام التي تخطي أيامًا غير تجارية ، وإعادة لحظة. كائن JS :
// 27 هو يوم الثلاثاء ('27 -01-2015 '،' dd-mm-yyyy '). الأعمال التجارية (3) ._ d // الخميس 22 يناير 2015 00:00:00 gmt-0600 (CST)
.nextBusinessDay()
=> لحظةسيسترجع تاريخ العمل التالي ككائن لحظة. JS :
// يوم العمل التالي من يوم الجمعة 30thmoment ('2015-01-30' ، 'Yyyy-MM-DD'). NextBusinessday () ._ D // Mon February 02 2015 00:00:00 GMT-0600 (CST) // يوم العمل التالي من الاثنين 2ndmoment ('2015-02-02' ، 'Yyyy-MM-DD'). NextBusinessday () ._ d // الثلاثاء 03 2015 00:00:00 GMT-0600 (CST)
بشكل افتراضي ، يتم فحص 7 أيام فقط في المستقبل ليوم العمل التالي. للبحث بعد 7 أيام تعيين NextBusinessdayLimit (كرقم) أعلى.
var moment = require ('moment-business ays') ؛ moment.updatelocale ('US' ، { NextBusinessdaylimit: 31}) ؛
.prevBusinessDay()
=> لحظةسيسترجع تاريخ العمل السابق ككائن لحظة. JS :
// يوم العمل السابق من الاثنين 2ndmoment ('2015-02-02' ، 'Yyyy-MM-DD'). يوم الأعمال السابق من الثلاثاء 3rdmoment ('2015-02-03' ، 'Yyyy-MM-DD').
بشكل افتراضي ، يتم فحص آخر 7 أيام فقط ليوم العمل السابق. للبحث بعد 7 أيام ، حدد PrevbusinessdayLimit (كرقم) أعلى.
var moment = require ('moment-business ays') ؛ moment.updatelocale ('US' ، { prevbusinessdaylimit: 31}) ؛
.monthBusinessDays()
=> لحظة []استرداد مجموعة من أيام العمل في الشهر ، كل واحد هو كائن لحظة .
// أيام العمل في الشهر في يناير 2015 (2015-01-01 "،" Yyyy-MM-DD ") yyyy-mm-dd '، _isutc: false ، _pf: {...} ، _locale: {...} ، _d: thu Jan 01 2015 00:00:00 gmt-0600 (cst)} {...} ، (...)]*/
.monthNaturalDays()
=> لحظة [] هو مثل .monthBusinessDays()
، ولكن هذه الطريقة ستشمل عطلات نهاية الأسبوع في ردها.
.monthBusinessWeeks()
=> لحظة [] [] []استرجاع مجموعة من المصفوفات ، هذه المصفوفات هي تمثيل أسابيع عمل وكل أسبوع (صفيف) لها أيام عمل خاصة (من الاثنين إلى الجمعة). قد يكون هناك ما هو أقل من 5 أيام ، وذلك لأن الشهر بدأ في منتصف الأسبوع ، على سبيل المثال: الأسبوع الأول من يناير 2015 لديه يومين فقط ، الخميس الأول والجمعة الثاني. كل يوم في المصفوفات الأسبوع هي Moment.js كائنات.
// أسابيع العمل في الشهر في يناير 2015 ، moment ('2015-01-01' ، 'yyyy-mm-dd') 'dd-mm-yyyy' ، _isutc: false ، _pf: [...] ، _locale: [...] ، _d: thu Jan 01 2015 00:00:00 gmt-0600 (CST)} ، {_isamomentObject: صحيح ، _i: '01 -01-2015 '، _f:' dd-mm-yyyy '، _isutc: false ، _pf: [...] ، _locale: [...] ، _d: fri Jan 02 2015 00: 00:00 GMT-0600 (CST)}] ، [...]]*/
.monthNaturalWeeks()
=> لحظة [] [] [] إنه مثل .monthBusinessWeeks()
، ولكن هذه الطريقة ستشمل عطلات نهاية الأسبوع في ردها.
// 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