Ini adalah momen.js plugin yang memungkinkan Anda bekerja hanya dengan hari kerja (mis. Senin hingga Jumat). Anda dapat menyesuaikan minggu kerja, dan juga menetapkan tanggal khusus untuk liburan untuk mengecualikan mereka dari dihitung sebagai hari kerja, misalnya liburan nasional .
NB: Saat menambahkan atau mengurangi hari kerja dari objek momen yang jatuh pada hari non-bisnis, hari itu tidak akan dihitung. Misalnya:
// Menggunakan Default Working Days: Senin hingga Jumat ([1, 2, 3, 4, 5]) Const Saturday = Moment ('2022-01-01'); // Momen <2022-01-01T00: 00: 00+01: 00>, Saturdayconst SaturdayPlustWo = Saturday.BusinessAdd (2); // Momen <2022-01-04T00: 00: 00+01: 00>, Selasa
Plugin ini berfungsi di sisi server dan klien.
Plugin ini didasarkan pada momen-bisnis.
Semua kontribusi dipersilakan.
Terima kasih kepada para kontributor untuk membuat plugin ini lebih baik !!
// nodejs: membutuhkan alih-alih momen standar momen momen = membutuhkan ('momen-bisnis-hari'); // Anda akan dapat menggunakan momen.js seperti biasanya
<!-browser-> <!-nb: tambahkan sesudah momen.js-> <skrip src = "momen.js"> </script> <script src = "momen-bisnis-days.js"> </script>
var momen = membutuhkan ('momen-bisnis-hari'); var Juli 4th = '2015-07-04'; var laborday = '2015-09-07'; var boxingday = '2020-12-26'; moment.updatelocale ('kita', { Liburan: [4 Juli, Buruh], Holidayformat: 'yyyy-mm-dd', Forcedbusinessdays: [Boxingday], ForcedBusinessdaysformat: 'yyyy-mm-dd'}); // momen-bisnis-hari sekarang akan berhenti mempertimbangkan liburan ini sebagai hari kerja, tetapi masih menghitung hari kerja paksa.
var moment = membutuhkan ('momen-bisnis-hari'); moment.updatelocale ('us', { WorkingWeekdays: [1, 2, 3, 4, 5, 6]}); // Menentukan hari dari 1 (Senin) hingga 6 (Sabtu) sebagai hari kerja. Perhatikan bahwa hari Minggu adalah hari 0.// saat menghilangkan parameter konfigurasi ini, hari kerja didasarkan pada default lokal
Objek yang dikembalikan dengan metode adalah momen.js objek (kecuali .isBusinessDay()
dan .businessDiff()
) sehingga Anda dapat menanganinya dengan metode asli momen.js .
.isHoliday()
=> booleanPeriksa apakah tanggalnya adalah salah satu liburan yang ditentukan, dan kembalikan benar atau salah :
.isBusinessDay()
=> booleanPeriksa apakah tanggalnya adalah hari kerja, dan kembalikan benar atau salah :
// 31ST adalah Saturdaymoment ('2015-01-31', 'yyyy-mm-dd'). IsBusinessday () // false // 30th adalah Fridaymoment ('2015-01-30', 'yyyy-mm-dd' ) .isbusinessday () // true
.businessDaysIntoMonth()
=> angkaHitung jumlah hari kerja sejak awal bulan momen.js objek.
var BusinesssSinceBeginningOfthementth = momen ('2021-07-01', 'yyyy-mm-dd'). Businessdaysintomonth (); // BusinessSincinBeginningofthement = 1Var BusinessSincinSeGinningOfThemonth = momen ('2021-08', '' momeny-MMMMMM ('2021-08', '2021-08', '2021-08', '2021-08', '2021-08', '2021-08' ) .Businessdaysintomonth (); // BusinessssinceBeginningofthement = 0Var BusinesssSinceBeginningofthemonth = momen ('2021-08-15', 'yyyy-mm-dd') - 31 ',' yyyy-mm-dd '). Businessdaysintomonth (); // BusinessSincinBeginningofthement = 22
.businessDiff()
=> angkaHitung jumlah hari kerja antar tanggal.
var diff = momen ('2017-05-15', 'yyyy-mm-dd'). BusinessDiff (momen ('2017-05-08', 'yyyy-mm-dd')); // diff = 5
Perhatikan bahwa perilaku default businessDiff
adalah mengembalikan nilai absolut , yang merupakan penyimpangan dari diff
momen. Untuk mencocokkan perilaku diff
Pass true
sebagai argumen kedua untuk businessDiff
:
var diff = momen ('05 -08-2017 ',' yyyy-mm-dd '). BusinessDiff (moment ('05 -15-2017', 'yyyy-mm-dd'), true); // diff = -5
.businessAdd(days)
=> momenAkan menambahkan jumlah hari yang diberikan melewatkan hari-hari non-bisnis, mengembalikan objek momen.js :
// 30th is Fridaymoment ('2015-01-30', 'yyyy-mm-dd'). Businessadd (3) ._ D // Rabu 04 Feb 2015 00:00:00 GMT-0600 (CST)
.businessSubtract(days)
=> momenAkan mengurangi jumlah hari yang diberikan melewatkan hari-hari non-bisnis, mengembalikan momen. Objek JS :
// 27th adalah Selasa Moment ('27 -01-2015 ',' dd-mm-yyyy '). BusinessScubtract (3) ._ D // Kamis 22 Jan 2015 00:00:00 GMT-0600 (CST)
.nextBusinessDay()
=> momenAkan mengambil tanggal bisnis berikutnya sebagai objek momen.js :
// Hari Bisnis Berikutnya Dari Jumat 30thmoment ('2015-01-30', 'yyyy-mm-dd'). NextBusinessday () ._ D // Mon 02 Feb 2015 00:00:00 GMT-0600 (CST) // Hari Bisnis Berikutnya Dari Senin 2ndmoment ('2015-02-02', 'yyyy-mm-dd'). NextBusinessday () ._ D // Sel 03 Feb 2015 00:00:00 GMT-0600 (CST)
Secara default hanya 7 hari ke depan diperiksa untuk hari kerja berikutnya. Untuk mencari di luar 7 hari, setel nextbusinessdaylimit (sebagai angka) lebih tinggi.
var moment = membutuhkan ('momen-bisnis-hari'); moment.updatelocale ('us', { nextBusinessdaylimit: 31});
.prevBusinessDay()
=> momenAkan mengambil tanggal bisnis sebelumnya sebagai objek momen.js :
// Hari Bisnis Sebelumnya Senin 2ndmoment ('2015-02-02', 'yyyy-mm-dd'). PrevBusinessday () ._ D // Jumat 30 Jan 2015 00:00:00 GMT-0600 (CST) // Hari Bisnis Sebelumnya Selasa 3rdMoment ('2015-02-03', 'yyyy-mm-dd'). PrevBusinessday () ._ D // Mon 02 Feb 2015 00:00:00 GMT-0600 (CST)
Secara default hanya 7 hari terakhir yang diperiksa untuk hari kerja sebelumnya. Untuk mencari di luar 7 hari, atur prevbusinessdaylimit (sebagai angka) lebih tinggi.
var moment = membutuhkan ('momen-bisnis-hari'); moment.updatelocale ('us', { prevbusinessdaylimit: 31});
.monthBusinessDays()
=> momen []Ambil serangkaian hari kerja di bulan ini, masing -masing adalah objek momen.js .
// Hari-hari bisnis di bulan Januari 2015moment ('2015-01-01', 'yyyy-mm-dd'). Monthbusinessdays ()/*[{_isamomentObject: true, _i: '2015-01-01', _f: ' Yyyy-mm-dd ', _isutc: false, _pf: {...}, _locale: {...}, _d: thu 01 Jan 2015 00:00:00 GMT-0600 (CST)} {...} , (...)]*/
.monthNaturalDays()
=> momen [] Seperti .monthBusinessDays()
, tetapi metode ini akan mencakup akhir pekan dalam tanggapannya.
.monthBusinessWeeks()
=> momen [] []Ambil serangkaian array, array ini adalah representasi dari minggu bisnis dan setiap minggu (array) memiliki hari -hari kerja sendiri (Senin hingga Jumat). Mungkin ada kasus bahwa satu minggu (array) memiliki kurang dari 5 hari, ini karena bulan dimulai pada pertengahan seminggu, misalnya: Minggu pertama Januari 2015 hanya memiliki dua hari, Kamis 1 dan Jumat ke -2. Setiap hari dalam seminggu array adalah momen.js objek.
// MINGGU BISNIS DALAM BULAN Januari 2015moment ('2015-01-01', 'yyyy-mm-dd'). MonthBusinessWeeks ()/*[[{_isamomentObject: true, _i: '01 -01-2015 ', _f: 'Dd-mm-yyyy', _isutc: false, _pf: [...], _locale: [...], _D: Kamis 01 Jan 2015 00:00:00 GMT-0600 (CST)}, {_isamomentObject: Benar, _i: '01 -01-2015 ', _f:' dd-mm-yyyy ', _isutc: false, _pf: [...], _locale: [...], _d: Jum 02 Jan 2015 00: 00:00 GMT-0600 (CST)}], [...]]*/
.monthNaturalWeeks()
=> momen [] [] Ini seperti .monthBusinessWeeks()
, tetapi metode ini akan mencakup akhir pekan dalam tanggapannya.
// 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