Given a set of opening times (with optional alternative opening times) return a status indicating openness.
To install the package run:
npm install moment-opening-times --save
yarn add moment-opening-times
This package relies upon several other packages. These are the Peer Dependencies. To get a list of the peerDependencies run the following command:
npm info moment-opening-times peerDependencies
All peerDependencies need to be installed.
The class is instantiated with 3 arguments. The third argument is optional and
represents a set of opening times classified as alterations. Once instantiated
the function getStatus
is passed the current time and an optional options object.
Currently the only valid option is a boolean field - next
. When
next
set to a truthy value the returned object will contain 2 additional
fields, nextClosed
and nextOpen
. Both fields are a
moment with a time zone
indicating the next time the place is closed and open, respectively.
Given the open hours of a place is represented by the following set of opening times:
const openingTimes =
{
sunday: [ { opens: '09:00', closes: '17:30' } ],
monday: [ { opens: '08:00', closes: '11:00' }, { opens: '13:00', closes: '15:00' }, { opens: '17:00', closes: '19:00' } ],
tuesday: [ { opens: '09:00', closes: '17:30' } ],
wednesday: [ { opens: '09:00', closes: '12:00' }, { opens: '14:00', closes: '18:00' } ],
thursday: [ { opens: '09:00', closes: '17:00' }, { opens: '18:00', closes: '21:00' } ],
friday: [ { opens: '09:00', closes: '17:30' } ],
saturday: [ { opens: '09:00', closes: '17:30' } ],
}
In order to find out if the place is open now in the Europe/London
time zone
the following code can be used:
const moment = require('moment');
const OpeningTimes = require('moment-opening-times');
const now = moment();
const openingTimesMoment = new OpeningTimes(openingTimes, 'Europe/London');
const status = openingTimesMoment.getStatus(now);
If we wanted to know whether the place was open at 23:59:59 on 31/12/2020 in
Indian/Christmas
the code would be:
const moment = require('moment');
const OpeningTimes = require('moment-opening-times');
const dateToCheck = moment('2020-12-31 23:59:59');
const openingTimesMoment = new OpeningTimes(openingTimes, 'Indian/Christmas');
const status = openingTimesMoment.getStatus(dateToCheck);
For more detailed use cases, check out the test suite.