如何修复FF和IE中的Javascript无效日期错误

时间:2016-05-11 19:49:33

标签: javascript jquery date cross-browser

我的日期格式为11-May-16,并且希望使用构造函数new Date('11-May-16')创建日期实例。

然而,在Internet Explorer和Firefox中,它无法正常工作。

如何解决?

1 个答案:

答案 0 :(得分:2)

Date()构造函数(调用Date.parse(...))正式支持的唯一格式为IETF-compliant RFC 2822 timestampsISO8601

任何其他格式都是特定于实现的,跨浏览器可能不支持。

创建日期的快速无依赖方法是自己解析它。例如,使用正则表达式:

function parseDate(date) {
  var MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', ...];
  var date = '11-May-16';
  var match = date.match(/(\d{2})-([A-Za-z]{3})-(\d{2})/);
  return new Date(2000 + parseInt(match[3]), MONTHS.indexOf(match[2]), match[1]);
}

parseDate('11-May-16')
-> Wed May 11 2016 00:00:00