我的日期格式为11-May-16
,并且希望使用构造函数new Date('11-May-16')
创建日期实例。
然而,在Internet Explorer和Firefox中,它无法正常工作。
如何解决?
答案 0 :(得分:2)
Date()
构造函数(调用Date.parse(...)
)正式支持的唯一格式为IETF-compliant RFC 2822 timestamps和ISO8601。
任何其他格式都是特定于实现的,跨浏览器可能不支持。
创建日期的快速无依赖方法是自己解析它。例如,使用正则表达式:
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