You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							42 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							42 lines
						
					
					
						
							1.2 KiB
						
					
					
				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
 | 
						|
 |