docs: function addTimeToArrayFromToken(token, input, config) {
          var a, datePartArray = config._a;
  
          switch (token) {
          // MONTH
          case 'M' : // fall through to MM
          case 'MM' :
              if (input != null) {
                  datePartArray[MONTH] = toInt(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[MONTH] = a;
              } else {
                  config._pf.invalidMonth = input;
              }
              break;
          // DAY OF MONTH
          case 'D' : // fall through to DD
          case 'DD' :
              if (input != null) {
                  datePartArray[DATE] = toInt(input);
              }
              break;
          // DAY OF YEAR
          case 'DDD' : // fall through to DDDD
          case 'DDDD' :
              if (input != null) {
                  config._dayOfYear = toInt(input);
              }
  
              break;
          // YEAR
          case 'YY' :
              datePartArray[YEAR] = toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
              break;
          case 'YYYY' :
          case 'YYYYY' :
              datePartArray[YEAR] = toInt(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[HOUR] = toInt(input);
              break;
          // MINUTE
          case 'm' : // fall through to mm
          case 'mm' :
              datePartArray[MINUTE] = toInt(input);
              break;
          // SECOND
          case 's' : // fall through to ss
          case 'ss' :
              datePartArray[SECOND] = toInt(input);
              break;
          // MILLISECOND
          case 'S' :
          case 'SS' :
          case 'SSS' :
          case 'SSSS' :
              datePartArray[MILLISECOND] = toInt(('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;
          case 'w':
          case 'ww':
          case 'W':
          case 'WW':
          case 'd':
          case 'dd':
          case 'ddd':
          case 'dddd':
          case 'e':
          case 'E':
              token = token.substr(0, 1);
              /* falls through */
          case 'gg':
          case 'gggg':
          case 'GG':
          case 'GGGG':
          case 'GGGGG':
              token = token.substr(0, 2);
              if (input) {
                  config._w = config._w || {};
                  config._w[token] = input;
              }
              break;
          }
      }