1
0
Fork 0
mirror of synced 2024-09-02 10:41:09 +12:00
budibase/packages/common/node_modules/date-fns/is_within_range/index.js
2020-04-15 15:23:29 +01:00

42 lines
1.2 KiB
JavaScript

var parse = require('../parse/index.js')
/**
* @category Range Helpers
* @summary Is the given date within the range?
*
* @description
* Is the given date within the range?
*
* @param {Date|String|Number} date - the date to check
* @param {Date|String|Number} startDate - the start of range
* @param {Date|String|Number} endDate - the end of range
* @returns {Boolean} the date is within the range
* @throws {Error} startDate cannot be after endDate
*
* @example
* // For the date within the range:
* isWithinRange(
* new Date(2014, 0, 3), new Date(2014, 0, 1), new Date(2014, 0, 7)
* )
* //=> true
*
* @example
* // For the date outside of the range:
* isWithinRange(
* new Date(2014, 0, 10), new Date(2014, 0, 1), new Date(2014, 0, 7)
* )
* //=> false
*/
function isWithinRange (dirtyDate, dirtyStartDate, dirtyEndDate) {
var time = parse(dirtyDate).getTime()
var startTime = parse(dirtyStartDate).getTime()
var endTime = parse(dirtyEndDate).getTime()
if (startTime > endTime) {
throw new Error('The start of the range cannot be after the end of the range')
}
return time >= startTime && time <= endTime
}
module.exports = isWithinRange