Nodejs Date Parse parse(s)

Here you can find the source of parse(s)

Method Source Code

Date.prototype.parse = function (s) {
    if ((s || '') == '')
        return null;

    if (typeof (s) == "object")
        return s;

    if (typeof (s) == 'string') {
        if (/\/Date\(.*\)\//gi.test(s)) {
            return eval(s.replace(/\/Date\((.*?)\)\//gi, "new Date($1)"));
        }//from ww w.j  a  va  2 s  . c  om
        else if (/(\d{8})/.test(s)) {
            return eval(s.replace(/(\d{4})(\d{2})(\d{2})/, "new Date($1,parseInt($2)-1,$3)"));
        }
        else if (/(\d{4})[-/](\d{1,2})[-/](\d{1,2})[T\s](\d{1,2})\:(\d{1,2})(?:\:(\d{1,2}))?/.test(s)) {
            return eval(s.replace(/(\d{4})[-/](\d{1,2})[-/](\d{1,2})[T\s](\d{1,2})\:(\d{1,2})(?:\:(\d{1,2}))?[\w\W]*/, "new Date($1,parseInt($2)-1,parseInt($3),parseInt($4),parseInt($5),parseInt($6)||0)"));
        }
        else if (/(\d{4})[-/](\d{1,2})[-/](\d{1,2})/.test(s)) {
            return eval(s.replace(/(\d{4})[-/](\d{1,2})[-/](\d{1,2})/, "new Date($1,parseInt($2)-1,$3)"));
        }
        try {
            return new Date(s);
        } catch (e) {
            return null;
        }
    }

    return null;
};

//#endregion

Related

  1. parse(iSeptaTime)
    Date.parse = function(iSeptaTime) {
      if (iSeptaTime instanceof Date) {
        return iSeptaTime;
      } else {
        var parts = iSeptaTime.match(/(\d+):(\d+)\s+(AM|PM)/);
        if (parts[1] < 12 && parts[3] == 'PM') {
          parts[1] = parseInt(parts[1], 10) + 12;
        } else if (parts[1] == 12 && parts[3] == 'AM') {
          parts[1] = 0;
    ...
    
  2. parseDate(date, format)
    Date.parseDate = function(date, format) {
      if (format === undefined)
        format = 'Y-m-d';
      var formatSeparator = format.match(/[.\/\-\s].*?/);
      var formatParts     = format.split(/\W+/);
      var parts           = date.split(formatSeparator);
      var date            = new Date();
      if (parts.length === formatParts.length) {
        date.setHours(0);
    ...
    
  3. parseFromJsonFormat(dateStr)
    Date.parseFromJsonFormat = function(dateStr) {
        var str = dateStr.substring(6, dateStr.length - 2);
        return new Date(str * 1);
    };
    
  4. setISO8601(timestamp)
    Date.prototype.setISO8601 = function (timestamp) {
     var match = timestamp.match(
      "^([-+]?)(\\d{4,})(?:-?(\\d{2})(?:-?(\\d{2})" +
      "(?:[Tt ](\\d{2})(?::?(\\d{2})(?::?(\\d{2})(?:\\.(\\d{1,3})(?:\\d+)?)?)?)?" +
      "(?:[Zz]|(?:([-+])(\\d{2})(?::?(\\d{2}))?)?)?)?)?)?$");
     if (match) {
      for (var ints = [2, 3, 4, 5, 6, 7, 8, 10, 11], i = ints.length - 1; i >= 0; --i)
       match[ints[i]] = (typeof match[ints[i]] != "undefined"
        && match[ints[i]].length > 0) ? parseInt(match[ints[i]], 10) : 0;
    ...
    
  5. setISO8601(timestamp)
    Date.prototype.setISO8601 = function (timestamp) {
        var match = timestamp.match("^([-+]?)(\\d{4,})(?:-?(\\d{2})(?:-?(\\d{2})" +
            "(?:[Tt ](\\d{2})(?::?(\\d{2})(?::?(\\d{2})(?:\\.(\\d{1,3})(?:\\d+)?)?)?)?" +
            "(?:[Zz]|(?:([-+])(\\d{2})(?::?(\\d{2}))?)?)?)?)?)?$");
        if (match) {
            for (var ints = [2, 3, 4, 5, 6, 7, 8, 10, 11], i = ints.length - 1; i >= 0; --i)
                match[ints[i]] = (typeof match[ints[i]] != "undefined" && match[ints[i]].length > 0)
                    ? parseInt(match[ints[i]], 10)
                    : 0;
    ...