A [Day.js](https://github.com/iamkun/dayjs) plugin that allows you to work with Business Time.
npm install dayjs-business-timeA Day.js plugin that allows you to work with Business Time.
* Business Days
* Business Hours
* Business Minutes
* Customize business days and hours
* Customize Holidays to prevent them to be counted as Business Days
* Setup
* Setting Holidays
* Getting Holidays
* Setting Business Times
* Getting Business Times
* Checking
* Check if a date is a Holiday
* Check if a date is a Business Day
* Check if a Time is Business Time
* Next and Last
* Get Next Business Day
* Get Last Business Day
* Get Next Business Time
* Get Last Business Time
* Adding Business Time
* Add Business Time
* Add Business Days
* Add Business Hours
* Add Business Minutes
* Subtracting Business Time
* Subtract Business Time
* Subtract Business Days
* Subtract Business Hours
* Subtract Business Minutes
* Diff
* Business Time Diff
* Business Days Diff
* Business Hours Diff
* Business Minutes Diff
console
npm i dayjs-business-time
`$3
`console
yarn add dayjs-business-time
`Usage
$3
``javascript
// First of all, include dayjs
const dayjs = require('dayjs');// Then, include dayjs-business-time
const dayjsBusinessTime = require('dayjs-business-time');
// Attach dayjs plugin
dayjs.extend(dayjsBusinessTime);
// Now you have all Business Time methods in dayjs
``$3
``typescript
// First of all, include dayjs
import dayjs from 'dayjs';// Then, include dayjs-business-time
import dayjsBusinessTime from 'dayjs-business-time';
// Attach dayjs plugin
dayjs.extend(dayjsBusinessTime);
// Now you have all Business Time methods in dayjs
``
Setup
$3
> By default, holidays are empty!``typescript
// Create your holidays array as string array
const holidays: string[] = [
'2021-01-01',
'2021-01-25',
'2021-06-03',
];// Add holidays to dayjs
dayjs.setHolidays(holidays);
``$3
``typescript
const holidays: string[] = dayjs.setHolidays(holidays);console.log(holidays);
// Output: ['2021-01-01', '2021-01-25', '2021-06-03']
``$3
> By default, Business Times are Monday-Friday, 9am - 5pm, but you can setup as many Business Segments you want in a day
``typescript
// Create your Business Week definition
const businessTimes: BusinessHoursMap = {
sunday: null,
monday: [
{ start: '09:00:00', end: '17:00:00' }
],
tuesday: [
{ start: '09:00:00', end: '12:00:00' },
{ start: '13:00:00', end: '18:00:00' }
],
wednesday: [
{ start: '09:00:00', end: '12:00:00' },
{ start: '13:00:00', end: '16:00:00' },
{ start: '13:00:00', end: '17:00:00' }
],
thursday: [
{ start: '09:00:00', end: '17:00:00' }
],
friday: [
{ start: '09:00:00', end: '17:00:00' }
],
saturday: null,
}// Set Business Times in dayjs
dayjs.setBusinessTime(businessTimes);
``Checking
$3
According to holidays setup
``typescript
const isHoliday = dayjs('2021-02-01').isHoliday();console.log(isHoliday); // false
``$3
Bussiness Days are days with Business Hours settled, excluding Holidays.
``typescript
const isBusinessDay = dayjs('2021-02-01').isBusinessDay();console.log(isBusinessDay); // true
``$3
Bussiness Times are all minutes between Start and End of a Business Time Segment.
``typescript
const isBusinessTime = dayjs('2021-02-01 10:00:00').isBusinessTime();console.log(isBusinessTime); // true
``Next and Last
$3
``typescript
const nextBusinessDay = dayjs('2021-02-01').nextBusinessDay();console.log(nextBusinessDay); // 2021-02-02
``$3
``typescript
const lastBusinessDay = dayjs('2021-02-01').lastBusinessDay();console.log(nextBusinessDay); // 2021-01-29
``$3
``typescript
const nextBusinessTime = dayjs('2021-02-01 18:00:00').nextBusinessTime();console.log(nextBusinessTime); // 2021-02-02 09:00:00
``$3
``typescript
const lastBusinessTime = dayjs('2021-02-01 08:00:00').lastBusinessTime();console.log(lastBusinessTime); // 2021-01-29 17:00:00
``Adding Business Time
$3
``typescript
const day = dayjs('2021-02-01 10:00:00');
const timeToAdd: number = 2;// Possible BusinessTimeUnit is 'day', 'days', 'hour', 'hours', 'minute', 'minutes'
const unit: BusinessTimeUnit = 'days';
const newBusinessTime: Dayjs = day.addBusinessTime(timeToAdd, unit);
console.log(newBusinessTime); // 2021-02-02 10:00:00
``$3
This method is just an alias for
.addBusinessTime(timeToAdd, 'days')``typescript
const day = dayjs('2021-02-01 10:00:00');
const timeToAdd: number = 2;const newBusinessTime: Dayjs = day.addBusinessDays(timeToAdd);
console.log(newBusinessTime); // 2021-02-02 10:00:00
``$3
This method is just an alias for
.addBusinessTime(timeToAdd, 'hours')``typescript
const day = dayjs('2021-02-01 10:00:00');
const timeToAdd: number = 2;const newBusinessTime: Dayjs = day.addBusinessHours(timeToAdd);
console.log(newBusinessTime); // 2021-02-01 12:00:00
``$3
This method is just an alias for
.addBusinessTime(timeToAdd, 'minutes')``typescript
const day = dayjs('2021-02-01 10:00:00');
const timeToAdd: number = 30;const newBusinessTime: Dayjs = day.addBusinessMinutes(timeToAdd);
console.log(newBusinessTime); // 2021-02-01 10:30:00
``Subtracting Business Time
$3
``typescript
const day = dayjs('2021-02-01 10:00:00');
const timeToSubtract: number = 2;// Possible BusinessTimeUnit is 'day', 'days', 'hour', 'hours', 'minute', 'minutes'
const unit: BusinessTimeUnit = 'days';
const newBusinessTime: Dayjs = day.subtractBusinessTime(timeToSubtract, unit);
console.log(newBusinessTime); // 2021-01-28 10:00:00
``$3
This method is just an alias for
.subtractBusinessTime(timeToSubtract, 'days')``typescript
const day = dayjs('2021-02-01 10:00:00');
const timeToSubtract: number = 2;const newBusinessTime: Dayjs = day.subtractBusinessDays(timeToSubtract);
console.log(newBusinessTime); // 2021-01-28 10:00:00
``$3
This method is just an alias for
.subtractBusinessTime(timeToSubtract, 'hours')``typescript
const day = dayjs('2021-02-01 12:00:00');
const timeToSubtract: number = 2;const newBusinessTime: Dayjs = day.subtractBusinessHours(timeToSubtract);
console.log(newBusinessTime); // 2021-02-01 10:00:00
``$3
This method is just an alias for
.subtractBusinessTime(timeToSubtract, 'minutes')``typescript
const day = dayjs('2021-02-01 10:00:00');
const timeToSubtract: number = 30;const newBusinessTime: Dayjs = day.subtractBusinessMinutes(timeToSubtract);
console.log(newBusinessTime); // 2021-02-01 09:30:00
``Diff
$3
``typescript
const start: Dayjs = dayjs('2021-02-01 10:00:00');
const end: Dayjs = dayjs('2021-02-04 10:00:00');// Possible BusinessTimeUnit is 'day', 'days', 'hour', 'hours', 'minute', 'minutes'
const unit: BusinessTimeUnit = 'days';
const difference: number = start.businessTimeDiff(end, unit);
console.log(difference); // 3
``$3
This method is just an alias for
.businessTimeDiff(dateToCompare, 'days')``typescript
const start: Dayjs = dayjs('2021-02-01 10:00:00');
const end: Dayjs = dayjs('2021-02-04 10:00:00');const difference: number = start.businessDaysDiff(end);
console.log(difference); // 3
``$3
This method is just an alias for
.businessTimeDiff(dateToCompare, 'hours')``typescript
const start: Dayjs = dayjs('2021-02-01 10:00:00');
const end: Dayjs = dayjs('2021-02-01 15:00:00');const difference: number = start.businessHoursDiff(end);
console.log(difference); // 5
``$3
This method is just an alias for
.businessTimeDiff(dateToCompare, 'minutes')``typescript
const start: Dayjs = dayjs('2021-02-01 10:00:00');
const end: Dayjs = dayjs('2021-02-01 10:45:00');const difference: number = start.businessMinutesDiff(end);
console.log(difference); // 25
```