docs: function parse(obj, options) {
    var result = {},
        key,
        value,
        momentValue;
  
    for (key in obj) {
      if (obj.hasOwnProperty(key)) {
        value = obj[key];
  
        if (typeof value === 'string' || typeof value === 'number') {
          momentValue = moment.call(null, value, options.formats, options.strict);
  
          if (momentValue.isValid()) {
            result[key] = momentValue.toDate();
          }
          else {
            result[key] = value;
          }
        }
        else if (value.constructor === Object) {
          result[key] = parse(value, options);
        }
        else {
          result[key] = value;
        }
      }
    }
  
    return result;
  }