Package Exports
- dayjs-business-time
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (dayjs-business-time) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
dayjs-business-time
A 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
Getting Started
Table of Contents
Instalation
With NPM
npm i dayjs-business-timeWith Yarn
yarn add dayjs-business-timeUsage
NodeJS
// 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 dayjsTypescript
// 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 dayjsSetup
Setting Holidays
By default, holidays are empty!
// 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);Getting Holidays
const holidays: string[] = dayjs.setHolidays(holidays);
console.log(holidays);
// Output: ['2021-01-01', '2021-01-25', '2021-06-03']Setting Business Times
By default, Business Times are Monday-Friday, 9am - 5pm, but you can setup as many Business Segments you want in a day
// 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
Check if a date is a Holiday
According to holidays setup
const isHoliday = dayjs('2021-02-01').isHoliday();
console.log(isHoliday); // falseCheck if a date is a Business Day
Bussiness Days are days with Business Hours settled, excluding Holidays.
const isBusinessDay = dayjs('2021-02-01').isBusinessDay();
console.log(isBusinessDay); // trueCheck if a Time is Business Time
Bussiness Times are all minutes between Start and End of a Business Time Segment.
const isBusinessTime = dayjs('2021-02-01 10:00:00').isBusinessTime();
console.log(isBusinessTime); // trueNext and Last
Get Next Business Day
const nextBusinessDay = dayjs('2021-02-01').nextBusinessDay();
console.log(nextBusinessDay); // 2021-02-02Get Last Business Day
const lastBusinessDay = dayjs('2021-02-01').lastBusinessDay();
console.log(nextBusinessDay); // 2021-01-29Get Next Business Time
const nextBusinessTime = dayjs('2021-02-01 18:00:00').nextBusinessTime();
console.log(nextBusinessTime); // 2021-02-02 09:00:00Get Last Business Time
const lastBusinessTime = dayjs('2021-02-01 08:00:00').lastBusinessTime();
console.log(lastBusinessTime); // 2021-01-29 17:00:00Adding Business Time
Add Business Time
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:00Add Business Days
This method is just an alias for .addBusinessTime(timeToAdd, 'days')
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:00Add Business Hours
This method is just an alias for .addBusinessTime(timeToAdd, 'hours')
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:00Add Business Minutes
This method is just an alias for .addBusinessTime(timeToAdd, 'minutes')
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:00Subtracting Business Time
Subtract Business Time
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:00Subtract Business Days
This method is just an alias for .subtractBusinessTime(timeToSubtract, 'days')
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:00Subtract Business Hours
This method is just an alias for .subtractBusinessTime(timeToSubtract, 'hours')
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:00Subtract Business Minutes
This method is just an alias for .subtractBusinessTime(timeToSubtract, 'minutes')
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:00Diff
Business Time Diff
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); // 3Business Days Diff
This method is just an alias for .businessTimeDiff(dateToCompare, 'days')
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); // 3Business Hours Diff
This method is just an alias for .businessTimeDiff(dateToCompare, 'hours')
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); // 5Business Minutes Diff
This method is just an alias for .businessTimeDiff(dateToCompare, 'minutes')
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