Send the text and date format to which you are sending the datetext in the following way. It will parse and return as a date, and it is browser independent.
function cal_parse_internal(val, format) { val = val + ""; format = format + ""; var i_val = 0; var i_format = 0; var x, y; var now = new Date(dbSysCurrentDate); var year = now.getYear(); var month = now.getMonth() + 1; var date = now.getDate(); while (i_format < format.length) { // Get next token from format string var c = format.charAt(i_format); var token = ""; while ((format.charAt(i_format) == c) && (i_format < format.length)) { token += format.charAt(i_format++); } // Extract contents of value based on format token if (token == "yyyy" || token == "yy" || token == "y") { if (token == "yyyy") { x = 4; y = 4; } if (token == "yy") { x = 2; y = 2; } if (token == "y") { x = 2; y = 4; } year = _getInt(val, i_val, x, y); if (year == null) { return 0; } i_val += year.length; if (year.length == 2) { if (year > 70) { year = 1900 + (year - 0); } else { year = 2000 + (year - 0); } } } else if (token == "MMMM") { month = 0; for (var i = 0; i < MONTHS_LONG.length; i++) { var month_name = MONTHS_LONG[i]; if (val.substring(i_val, i_val + month_name.length) == month_name) { month = i + 1; i_val += month_name.length; break; } } if (month < 1 || month > 12) { return 0; } } else if (token == "MMM") { month = 0; for (var i = 0; i < MONTHS_SHORT.length; i++) { var month_name = MONTHS_SHORT[i]; if (val.substring(i_val, i_val + month_name.length) == month_name) { month = i + 1; i_val += month_name.length; break; } } if (month < 1 || month > 12) { return 0; } } else if (token == "MM" || token == "M") { month = _getInt(val, i_val, token.length, 2); if (month == null || month < 1 || month > 12) { return 0; } i_val += month.length; } else if (token == "dd" || token == "d") { date = _getInt(val, i_val, token.length, 2); if (date == null || date < 1 || date > 31) { return 0; } i_val += date.length; } else { if (val.substring(i_val, i_val+token.length) != token) {return 0;} else {i_val += token.length;} } } // If there are any trailing characters left in the value, it doesn't match if (i_val != val.length) { return 0; } // Is date valid for month? if (month == 2) { // Check for leap year if ((year%4 == 0 && year%100 != 0) || (year%400 == 0)) { // leap year if (date > 29) { return false; } } else { if (date > 28) { return false; } } } if (month == 4 || month == 6 || month == 9 || month == 11) { if (date > 30) { return false; } } return new Date(year, month - 1, date); }
valli Feb 02 2018-10-02T00 : 00Z
source share