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,todaytomorrowyesterdaythis-weeknext-weekpast-weekthis-monthnext-monthpast-monththis-yearnext-yearpast-yearnextpastnearest-weekendweekendrest-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.