Nodejs Date Parse setISO8601(timestamp)

Here you can find the source of setISO8601(timestamp)

Method Source Code

/*//w ww. j a va 2  s  .c o m
Internet Timestamp Parser
Copyright (c) 2009 Sebastiaan Deckers
License: GNU General Public License version 3 or later
*/
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;

        if (match[1] == '-') // BC/AD
            match[2] *= -1;
        var ms = Date.UTC(
            match[2], // Y
            match[3] - 1, // M
            match[4], // D
            match[5], // h
            match[6], // m
            match[7], // s
            match[8] // ms
        );

        if (typeof match[9] != "undefined" && match[9].length > 0) // offset
            ms += (match[9] == '+' ? -1 : 1) * (match[10] * 3600 * 1000 + match[11] * 60 * 1000); // oh om
        if (match[2] >= 0 && match[2] <= 99) // 1-99 AD
            ms -= 59958144000000;
        this.setTime(ms);
        return this;
    }
    
    return null;
}

function formatDateTime(issued, monthsArray) {
    var today = new Date();

    if (issued.getFullYear() == today.getFullYear() &&
           issued.getMonth() == today.getMonth() &&
           issued.getDate() == today.getDate()) {
        // Mail was issued today, display time
        var hour = issued.getHours();
        var min = issued.getMinutes();
        return ((hour < 10) ? "0" : "") + hour + ":" + ((min < 10) ? "0" : "") + min;
    } else {
        // Old mail, only display date
        //datetime = dateFormat(issued, "d mmm");
        return issued.getDate() + ' ' + monthsArray[issued.getMonth()];
    }
}

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. parse(s)
    Date.prototype.parse = function (s) {
        if ((s || '') == '')
            return null;
        if (typeof (s) == "object")
            return s;
        if (typeof (s) == 'string') {
            if (/\/Date\(.*\)\
                return eval(s.replace(/\/Date\((.*?)\)\
            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;
    };
    
  3. 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);
    ...
    
  4. parseFromJsonFormat(dateStr)
    Date.parseFromJsonFormat = function(dateStr) {
        var str = dateStr.substring(6, dateStr.length - 2);
        return new Date(str * 1);
    };
    
  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;
    ...
    
  6. setISODuration(input)
    Date.prototype.setISODuration = function (input) {
      var ISODurationRegex = /P((([0-9]*\.?[0-9]*)Y)?(([0-9]*\.?[0-9]*)M)?(([0-9]*\.?[0-9]*)W)?(([0-9]*\.?[0-9]*)D)?)?(T(([0-9]*\.?[0-9]*)H)?(([0-9]*\.?[0-9]*)M)?(([0-9]*\.?[0-9]*)S)?)?/
      if(typeof input !== 'string') {
        return console.log("err");
      if(ISODurationRegex.test(input) === false) {
        return console.log('err');
      var matches = input.match(ISODurationRegex);
    ...
    
  7. parseToDate()
    String.prototype.parseToDate = function () {
        var s = this.split("/");
        return s.length === 3 ? new Date(s[0], parseInt(s[1]) - 1, s[2]) : null;
    };
    
  8. parseToDate()
    String.prototype.parseToDate = function() {
      var year = Number(this.substring(0, 4));
      var month = Number(this.substring(5, 7)) - 1;
      var date = Number(this.substring(8, 10));
      var hours = Number(this.substring(11, 13));
      var minutes = Number(this.substring(14, 16));                                                                                                  
        var result = new Date(year, month, date, hours, minutes,0,0);
        console.log(year);
        console.log(month);
    ...
    
  9. parseDate()
    String.prototype.parseDate = function () {
        var monthArray = {'Jan':0, 'Feb':1, 'Mar':2, 'Apr':3, 'May':4, 'Jun':5, 'Jul':6, 'Aug':7, 'Sep':8, 'Oct':9, 'Nov':10, 'Dec':11};
        var dateArray = this.split('-');
        return new Date(dateArray[2], monthArray[dateArray[1]], dateArray[0]);
    };