Validate over a date range. Uses MomentJS for date mathematics and calculations.
Note: MomentJS must be installed to be able to use this validator. The easiest way to do this is to install ember-moment
Examples
If before, onOrBefore, after, or onOrAfter is set to now, the value given to the validator will be tested against the current date and time.
validator('date', {
  after: 'now',
  before: '1/1/2020',
  precision: 'day',
  format: 'M/D/YYY',
  errorFormat: 'M/D/YYY'
})
  - 
  						
options - 
  						
defaultOptions - 
  						
globalOptions 
Build options hook. Merges default options into options object. This method gets called on init and is the ideal place to normalize your options. The presence validator is a good example to checkout
Returns:
- 
  						
type - 
  						
value - 
  						
options 
Used by all pre-defined validators to build an error message that is present
  in validators/message or declared in your i18n solution.
If we extended our default messages to include uniqueUsername: '{username} already exists',
  we can use this method to generate our error message.
validate(value, options) {
    const exists = false;
  
    // check with server if username exists...
  
    if(exists) {
      // The username key on the options object will be used to create the error message
      options.username = value;
      return this.createErrorMessage('uniqueUsername', value, options);
    }
  
    return true;
  }
  
  If we input johndoe and that username already exists, the returned message would be 'johndoe already exists'.
Parameters:
Returns:
The generated message
Wrapper method to value that passes the necessary parameters
Returns:
value
- 
  						
date - 
  						
format - 
  						
locale 
This is a forcing function.  If format provided, date and comparison date will be in String format.  Otherwise, instances of Date.
  I don't think there is a need to force iso8601 strings.
Parameters:
- 
  						
type - 
  						
args 
Easily compose complicated validations by using this method to validate against other validators.
validate(value, options, ...args) {
    let result = this.test('presence', value, { presence: true }, ...args);
  
    if (!result.isValid) {
      return result.message;
    }
  
    // You can even test against your own custom validators
    result = this.test('my-validator', value, { foo: 'bar' }, ...args);
  
    if (!result.isValid) {
      return result.message;
    }
  
    result = this.test('number', value, { integer: true }, ...args);
  
    // You can easily override the error message by returning your own.
    if (!result.isValid) {
       return 'This value must be an integer!';
     }
  
    // Add custom logic...
  
    return true;
  }
  
  Parameters:
- 
  						
typeStringThe validator type (e.x. 'presence', 'length', etc.) The following types are unsupported: 'alias', 'belongs-to', 'dependent', 'has-many'
 - 
  						
args...argsThe arguments to pass through to the validator
 
Returns:
The test result object which will contain isValid
  and message. If the validator is async, then the
  return value will be a promise.
- 
  						
value - 
  						
options 
Parameters:
- 
  						
valueString | Date - 
  						
optionsObject- 
  									
allowBlankBooleanIf true, skips validation if the value is empty
 - 
  									
beforeString | DateThe specified date must be before this date
 - 
  									
onOrBeforeString | DateThe specified date must be on or before this date
 - 
  									
afterString | DateThe specified date must be after this date
 - 
  									
onOrAfterString | DateThe specified date must be on or after this date
 - 
  									
formatStringInput value date format - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat
- { dateStyle: 'long' } or { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' } If you need to obtain precision (just compare years), use { year: 'numeric' }
 
 - 
  									
errorFormatStringError output date format. Defaults to options.format or { dateStyle: 'long' }
 
 -