whole_func_string: function addTimeToArrayFromToken(token, input, config) {
          var a, datePartArray = config._a;
  
          switch (token) {
          // MONTH
          case 'M' : // fall through to MM
          case 'MM' :
              datePartArray[1] = (input == null) ? 0 : ~~input - 1;
              break;
          case 'MMM' : // fall through to MMMM
          case 'MMMM' :
              a = getLangDefinition(config._l).monthsParse(input);
              // if we didn't find a month name, mark the date as invalid.
              if (a != null) {
                  datePartArray[1] = a;
              } else {
                  config._isValid = false;
              }
              break;
          // DAY OF MONTH
          case 'D' : // fall through to DDDD
          case 'DD' : // fall through to DDDD
          case 'DDD' : // fall through to DDDD
          case 'DDDD' :
              if (input != null) {
                  datePartArray[2] = ~~input;
              }
              break;
          // YEAR
          case 'YY' :
              datePartArray[0] = ~~input + (~~input > 68 ? 1900 : 2000);
              break;
          case 'YYYY' :
          case 'YYYYY' :
              datePartArray[0] = ~~input;
              break;
          // AM / PM
          case 'a' : // fall through to A
          case 'A' :
              config._isPm = getLangDefinition(config._l).isPM(input);
              break;
          // 24 HOUR
          case 'H' : // fall through to hh
          case 'HH' : // fall through to hh
          case 'h' : // fall through to hh
          case 'hh' :
              datePartArray[3] = ~~input;
              break;
          // MINUTE
          case 'm' : // fall through to mm
          case 'mm' :
              datePartArray[4] = ~~input;
              break;
          // SECOND
          case 's' : // fall through to ss
          case 'ss' :
              datePartArray[5] = ~~input;
              break;
          // MILLISECOND
          case 'S' :
          case 'SS' :
          case 'SSS' :
              datePartArray[6] = ~~ (('0.' + input) * 1000);
              break;
          // UNIX TIMESTAMP WITH MS
          case 'X':
              config._d = new Date(parseFloat(input) * 1000);
              break;
          // TIMEZONE
          case 'Z' : // fall through to ZZ
          case 'ZZ' :
              config._useUTC = true;
              config._tzm = timezoneMinutesFromString(input);
              break;
          }
  
          // if the input is null, the date is not valid
          if (input == null) {
              config._isValid = false;
          }
      }
func_code_string: function addTimeToArrayFromToken(token, input, config) {
          var a, datePartArray = config._a;
  
          switch (token) {
          // MONTH
          case 'M' : // fall through to MM
          case 'MM' :
              datePartArray[1] = (input == null) ? 0 : ~~input - 1;
              break;
          case 'MMM' : // fall through to MMMM
          case 'MMMM' :
              a = getLangDefinition(config._l).monthsParse(input);
              // if we didn't find a month name, mark the date as invalid.
              if (a != null) {
                  datePartArray[1] = a;
              } else {
                  config._isValid = false;
              }
              break;
          // DAY OF MONTH
          case 'D' : // fall through to DDDD
          case 'DD' : // fall through to DDDD
          case 'DDD' : // fall through to DDDD
          case 'DDDD' :
              if (input != null) {
                  datePartArray[2] = ~~input;
              }
              break;
          // YEAR
          case 'YY' :
              datePartArray[0] = ~~input + (~~input > 68 ? 1900 : 2000);
              break;
          case 'YYYY' :
          case 'YYYYY' :
              datePartArray[0] = ~~input;
              break;
          // AM / PM
          case 'a' : // fall through to A
          case 'A' :
              config._isPm = getLangDefinition(config._l).isPM(input);
              break;
          // 24 HOUR
          case 'H' : // fall through to hh
          case 'HH' : // fall through to hh
          case 'h' : // fall through to hh
          case 'hh' :
              datePartArray[3] = ~~input;
              break;
          // MINUTE
          case 'm' : // fall through to mm
          case 'mm' :
              datePartArray[4] = ~~input;
              break;
          // SECOND
          case 's' : // fall through to ss
          case 'ss' :
              datePartArray[5] = ~~input;
              break;
          // MILLISECOND
          case 'S' :
          case 'SS' :
          case 'SSS' :
              datePartArray[6] = ~~ (('0.' + input) * 1000);
              break;
          // UNIX TIMESTAMP WITH MS
          case 'X':
              config._d = new Date(parseFloat(input) * 1000);
              break;
          // TIMEZONE
          case 'Z' : // fall through to ZZ
          case 'ZZ' :
              config._useUTC = true;
              config._tzm = timezoneMinutesFromString(input);
              break;
          }
  
          // if the input is null, the date is not valid
          if (input == null) {
              config._isValid = false;
          }
      }
func_documentation_string: function to convert string input to date