นี่เป็นช่วงเวลาหนึ่งปลั๊กอิน JS ที่ให้คุณทำงานกับวันทำการเท่านั้น (เช่นวันจันทร์ถึงวันศุกร์) คุณสามารถปรับแต่งสัปดาห์การทำงานและกำหนดวันที่กำหนดเองสำหรับวันหยุดเพื่อแยกพวกเขาจากการนับเป็นวันทำการเช่น วันหยุดแห่ง ชาติ
NB: เมื่อเพิ่มหรือลบวันทำการจากวัตถุช่วงเวลาที่ตกอยู่ในวันที่ไม่ใช่ธุรกิจวันนั้นจะไม่ถูกนับ ตัวอย่างเช่น:
// การใช้งานเริ่มต้นวันธรรมดา: วันจันทร์ถึงวันศุกร์ ([1, 2, 3, 4, 5]) const วันเสาร์ = ช่วงเวลา ('2022-01-01'); // ช่วงเวลา <2022-01-01T00: 00: 00+01: 00>, วันเสาร์ที่ SaturdayPlustWo = Saturday.BusinessAdd (2); // ช่วงเวลา <2022-01-04T00: 00: 00+01: 00>, วันอังคาร
ปลั๊กอินนี้ใช้งานได้ทั้งบนเซิร์ฟเวอร์และฝั่งไคลเอ็นต์
ปลั๊กอินนี้ขึ้นอยู่กับความเป็นธุรกิจโมเมนต์
ยินดีต้อนรับการมีส่วนร่วมทั้งหมด
ขอบคุณผู้มีส่วนร่วมที่ทำให้ปลั๊กอินนี้ดีขึ้น !!
// nodejs: ต้องการแทนที่จะเป็นช่วงเวลามาตรฐาน packageVar moment = ต้องการ ('moment-business-days'); // คุณจะสามารถใช้ moment.js ได้ตามปกติ
<!-เบราว์เซอร์-> <!-nb: เพิ่มหลังจาก moment.js-> <script src = "moment.js"> </script> <script src = "moment-business-days.js"> </script>
var moment = ต้องการ ('moment-business-days'); var July4th = '2015-07-04'; var laborday = '2015-09-07'; var boxingday = '2020-12-26'; ('เรา', { วันหยุด: [กรกฎาคม 4, วันแรงงาน], HolidayFormat: 'yyyy-mm-dd' ForcedBusinessDays: [Boxingday], ForcedBusinessDaysFormat: 'yyyy-mm-dd'}); // ช่วงเวลา-ธุรกิจ-วัน-วันนี้จะหยุดการพิจารณาวันหยุดเหล่านี้เป็นวันทำการ แต่ยังคงนับวันทำการบังคับ
var moment = ต้องการ ('moment-business-days'); moment.updatelocale ('us', { WorkingWeekDays: [1, 2, 3, 4, 5, 6]}); // กำหนดวันตั้งแต่ 1 (วันจันทร์) ถึง 6 (วันเสาร์) เป็นวันทำการ โปรดทราบว่าวันอาทิตย์เป็นวันที่ 0.// เมื่อละเว้นพารามิเตอร์การกำหนดค่านี้วันทำการจะขึ้นอยู่กับค่าเริ่มต้นของสถานที่
วัตถุที่ส่งคืนโดยวิธีการคือ moment.js วัตถุ (ยกเว้น .isBusinessDay()
และ .businessDiff()
) เพื่อให้คุณสามารถจัดการกับพวกเขาด้วย moment.js วิธีการดั้งเดิม
.isHoliday()
=> บูลีนตรวจสอบว่าวันที่เป็นวันหยุดที่ระบุและส่งคืน จริง หรือ เท็จ :
.isBusinessDay()
=> บูลีนตรวจสอบว่าวันที่เป็นวันทำการและส่งคืน จริง หรือ เท็จ :
// 31 เป็นวันเสาร์ ('2015-01-31', 'yyyy-mm-dd'). isbusinessday () // false // 30th เป็นวันศุกร์ ('2015-01-30', 'yyyy-mm-dd' ) .Sbusinessday () // true
.businessDaysIntoMonth()
=> หมายเลขคำนวณจำนวนวันทำการนับตั้งแต่ต้นเดือนของวัตถุ ช่วงเวลา JS
Var BusinessDayssinceBeginNingOfThemonth = Moment ('2021-07-01', 'yyyy-mm-dd'). BusinessDaysIntomonth (); // BusinessDayssinceBeginningOfthemonth = 1var BusinessSinceBeginningofThemonth = Moment ('2021-08-08 ) .BusinessDaysIntomonth (); // BusinessDayssinceBeginningOfThemonth = 0var BusinessDayssinceBeginningIndTheNmth = Moments ('2021-08-15', 'yyyy-mm-dd') - 31 ',' yyyy-mm-dd '). BusinessDaysIntomonth (); // BusinessDayssinceBeginningOfThemonth = 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'), จริง); // diff = -5
.businessAdd(days)
=> ช่วงเวลาจะเพิ่มจำนวนวันที่กำหนดข้ามวันที่ไม่ใช่ธุรกิจโดยส่งคืน ชั่วขณะวัตถุ JS :
// 30th เป็นวันศุกร์ ('2015-01-30', 'yyyy-mm-dd'). BusinessAdd (3) ._ d // พุธ 04 ก.พ. 2015 00:00:00 GMT-0600 (CST)
.businessSubtract(days)
=> ช่วงเวลาจะลบจำนวนวันที่กำหนดข้ามวันที่ไม่ใช่ธุรกิจกลับไปชั่วขณะหนึ่งวัตถุ เจส :
// 27th เป็นวันอังคาร ('27 -01-2015 ',' DD-MM-YYYY '). BusinessSubtract (3) ._ D // Thu 22 มกราคม 2015 00:00:00 GMT-0600 (CST)
.nextBusinessDay()
=> ช่วงเวลาจะเรียกคืนวันที่ธุรกิจถัดไปเป็นช่วงเวลาวัตถุ JS :
// วันทำการถัดไปตั้งแต่วันศุกร์ที่ 30 ปี ('2015-01-30', 'yyyy-mm-dd'). nextbusinessday () ._ d // mon Feb 02 2015 00:00:00 GMT-0600 (CST) // วันทำการถัดไปตั้งแต่วันจันทร์ที่ 2ndmoment ('2015-02-02', 'yyyy-mm-dd'). nextbusinessday () ._ d // tue 03 ก.พ. 2015 00:00:00:00 GMT-0600 (CST)
โดยค่าเริ่มต้นเพียง 7 วันในอนาคตจะถูกตรวจสอบสำหรับวันทำการถัดไป หากต้องการค้นหาเกิน 7 วันตั้งค่า NextBusinessDayLimit (เป็นตัวเลข) ที่สูงขึ้น
var moment = ต้องการ ('moment-business-days'); moment.updatelocale ('us', { NextBusinessDayLimit: 31});
.prevBusinessDay()
=> ช่วงเวลาจะเรียกคืนวันที่ธุรกิจก่อนหน้านี้เป็นช่วงเวลาวัตถุ JS :
// วันทำการก่อนหน้านี้ของวันจันทร์ที่ 2ndmoment ('2015-02-02', 'yyyy-mm-dd'). Prevbusinessday () ._ d // วันศุกร์ที่ 30 มกราคม 2015 00:00:00:00 GMT-0600 (CST) // วันทำการก่อนหน้านี้ของวันอังคารที่ 3rdmoment ('2015-02-03', 'yyyy-mm-dd'). Prevbusinessday () ._ d // mon 02 ก.พ. 2015 00:00:00 GMT-0600 (CST)
โดยค่าเริ่มต้นเฉพาะ 7 วันสุดท้ายจะถูกตรวจสอบสำหรับวันทำการก่อนหน้านี้ หากต้องการค้นหาเกิน 7 วันตั้งค่า prevbusinessdaylimit (เป็นตัวเลข) ที่สูงขึ้น
var moment = ต้องการ ('moment-business-days'); moment.updatelocale ('us', { PrevbusinessdayLimit: 31});
.monthBusinessDays()
=> ช่วงเวลา []ดึงอาร์เรย์ของวันทำการในเดือนแต่ละอันเป็นช่วงเวลาหนึ่งวัตถุ JS
// วันทำการในเดือนมกราคม 2015ment ('2015-01-01', 'yyyy-mm-dd'). monthbusinessdays ()/*[{_isamomentobject: จริง _i: '2015-01-01', _f: ' yyyy-mm-dd ', _isutc: false, _pf: {... }, _locale: {... }, _d: Thu Jan 01 2015 00:00:00 GMT-0600 (CST)} {... }} , (... )]*/
.monthNaturalDays()
=> ช่วงเวลา [] เป็นเหมือน .monthBusinessDays()
แต่วิธีนี้จะรวมถึงวันหยุดสุดสัปดาห์ในการตอบสนองของมัน
.monthBusinessWeeks()
=> moment [] []รับอาร์เรย์อาร์เรย์อาร์เรย์เหล่านี้เป็นตัวแทนของสัปดาห์ทำการและในแต่ละสัปดาห์ (อาร์เรย์) มีวันทำการของตัวเอง (วันจันทร์ถึงวันศุกร์) อาจมีกรณีที่หนึ่งสัปดาห์ (อาร์เรย์) มีเวลาน้อยกว่า 5 วันนี่เป็นเพราะเดือนที่เริ่มต้นในช่วงกลางสัปดาห์ตัวอย่างเช่นสัปดาห์แรกของเดือนมกราคม 2558 มีเพียงสองวันวันพฤหัสบดีที่ 1 และวันศุกร์ที่ 2 ในแต่ละวันในอาร์เรย์ของสัปดาห์เป็นช่วงเวลาที่วัตถุ
// สัปดาห์ธุรกิจในเดือนมกราคม 2015ment ('2015-01-01', 'yyyy-mm-dd'). monthbusinessweeks ()/*[[{_isamomentObject: จริง, _i: '01 -01-2015 ', _f: '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: วันศุกร์ที่ 02 มกราคม 2015 00: 00:00 GMT-0600 (CST)}], [... ]]*//
.monthNaturalWeeks()
=> moment [] [] มันเหมือน .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