jdubois Posted September 20, 2010 Share Posted September 20, 2010 I was attempting to use the following code to reformat a date into longhand, but received an error which I believe is the result of the incoming data being in a european style. The code I am using is: return FormatDate(Field("UPLOAD_DATE"), "ld, lm d, 20yy"); The Error I am receiving is: uncaught exception: Error in function FormatDate: The input string is invalid The input string fromt he data source comes over as 8-Sep-10, and I would like it to output as September, 8 2010. Any help on what I am doing incorrectly or how I could accomplish this is greatly appreciated. Jerimiah DuBois Link to comment Share on other sites More sharing options...
Dan Korn Posted September 20, 2010 Share Posted September 20, 2010 JavaScript only parses dates in very specific formats; European date formats generally are not among them. You need a custom date parser for those. Try this: var str = Field("UPLOAD_DATE"); var MonthNameAbbrs = [ "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec" ]; var month_name_part = 0; var parts = str.replace(/-/g,'/').split('/'); for (var i = 0; !month_name_part && i < parts.length; i++) { if (isNaN(parseInt(parts[i]))) { for (var m = 0; m < MonthNameAbbrs.length; m++) { if (ToLower(parts[i]).substr(0,3) == MonthNameAbbrs[m]) { parts[i] = m + 1; month_name_part = i + i; break; } } } } if (month_name_part) { var mpart = month_name_part - 1; var mval = parts[mpart]; parts.splice(mpart, 1); parts.splice(0, 0, mval); } var date = DateFromString(parts.join('/')); return FormatDate(date, "ld, lm d, yyyy"); Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.