google-code-export / calendardateselect

Automatically exported from code.google.com/p/calendardateselect
Other
0 stars 0 forks source link

bad index for format_iso_date regex result? #149

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
format_iso_date.js:36
     if (d[0]) {
        date.setSeconds(d[0]);
    } 

d[0] for me equates to "2008/12/16" if the input.value is "2008/12/16"
corrupting the date instance built up to this point.  

Note I changed '-' to '/' for my project needs.

Original issue reported on code.google.com by ward.dav...@gmail.com on 15 Dec 2008 at 9:44

GoogleCodeExporter commented 9 years ago
you could use this function instead:
{{{
Date.parseFormattedString =function (string) {
    var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" +
        "([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})?(\.([0-9]+))?)?" +
        "(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";
    var d = string.match(new RegExp(regexp));

    var offset = 0;
    var date = new Date(d[1], 0, 1);

    if (d[3]) { date.setMonth(d[3] - 1); }
    if (d[5]) { date.setDate(d[5]); }
    if (d[7]) { date.setHours(d[7]); }
    if (d[8]) { date.setMinutes(d[8]); }
    if (d[10]) { date.setSeconds(d[10]); }
    if (d[12]) { date.setMilliseconds(Number("0." + d[12]) * 1000); }
    if (d[14]) {
        offset = (Number(d[16]) * 60) + Number(d[17]);
        offset *= ((d[15] == '-') ? 1 : -1);
    }

    offset -= date.getTimezoneOffset();
    time = (Number(date) + (offset * 60 * 1000));
    return date
}
}}}

The atteced files replaces 
{{{
public/stylesheets/calendar_date_select/format_iso_date.js 
}}}

Original comment by paulbalo...@gmail.com on 19 Feb 2010 at 10:33

Attachments: