moment-opening-times
Given a set of opening times (with optional alternative opening times) return a status indicating openness.
Installation
To install the package run:
- npm -
npm install moment-opening-times --save
- yarn -
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.
Usage
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.
Example usage
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 = ;const OpeningTimes = ; const now = ;const openingTimesMoment = openingTimes 'Europe/London'; const status = openingTimesMoment;
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 = ;const OpeningTimes = ; const dateToCheck = ;const openingTimesMoment = openingTimes 'Indian/Christmas'; const status = openingTimesMoment;
For more detailed use cases, check out the test suite.