JS function to check date or date range against common queries or custom functions.
Install:
yarn add date-queries
Pass dtstart
and dtend
(dtend
can be set to undefined
) and queries to check the dates against.
The queries can be either one of the predefined (see below) or a custom function that accepts dtstart
and dtend
and returns a value (typically string) if truthy.
The dateQueries
function returns name of the first matching query (for example tomorrow
) or value of the custom function. Queries are evaluated in order as specified.
queries = [
'today',
'tomorrow',
'this-week'
]
# dateQueries(dtstart, dtend, queries)
dateQueries(new Date(), null, queries) # => 'today'
With custom function:
import { isWednesday, isWithinRange, setDay } from 'date-fns'
queries = [
((dtstart, dtend) ->
if dtend
# does the range cover coming Wednesday?
isWithinRange(setDay(new Date(), 3), dtstart, dtend)
else
isWednesday(dtstart)
)
]
dateQueries(dtstart, dtend, queries)
now
,today
tomorrow
yesterday
this-week
next-week
past-week
this-month
next-month
past-month
this-year
next-year
past-year
next
past
nearest-weekend
weekend
rest-of-this-week
Running the tests:
yarn test
yarn test --watch
yarn build
Bug reports and pull requests are welcome on GitHub at https://github.com/tomasc/date-queries.
The library is available as open source under the terms of the MIT License.