独立于浏览器的字符串(DD-MON-YY)到日期的转换

Browser independent String(DD-MON-YY) to Date conversion

外部服务 returns DD-MON-YY 格式的字符串日期(例如“30-JUN-12”)需要转换为日期类型以预填充到日期选择器中.我正在使用新的 Date() javascript 函数,它在 Chrome 中工作正常,但在 Firefox、Edge 和 IE 中给出无效日期。

Added "19" for years greater than 50 and "20" for years less than 50

Chrome、Edge (Chromium) 和 Firefox

const convert = str => {
  let [dd, mmm, yy] = str.split("-");
  yy = (+yy > 50 ? "19" : "20") + yy;
  return new Date(`${dd} ${mmm} ${yy} 15:00:00`);
};
console.log(convert("30-JUN-12"));
console.log(convert("29-FEB-80"));

这适用于 IE11

var convert = function(str) {
  var parts = str.split("-");
  parts[2] = (+parts[2] > 50 ? "19" : "20") + parts[2];
  return new Date(parts[0] + " " + parts[1] + " " + parts[2] + " 15:00:00");
};

console.log(convert("30-JUN-12"));
console.log(convert("29-FEB-80"));