我不知道你从哪里Date.parse
打来的电话,JavaScriptDate.parse
没有第二个参数。
为此,您需要自己解析字符串,或使用MomentJS或类似工具为您解析。如果您想自己解析它,您可能需要一个正则表达式和一个查找表(用于月份名称)。正则表达式将遵循以下原则:
var parts = /^\s*(\d+)\s+([A-Za-z]+)\s+(\d+)\s*$/.exec(str);
...您最终会parts[0]
成为日期、parts[1]
月份名称和parts[2]
年份。然后只需将月份转换为小写或大写,并使用查找表将月份名称映射到月份编号,如下所示:
var months = {
"jan": 0,
"january": 0,
"feb": 1,
"february": 1,
"may": 4,
// ...
"dec": 11,
"december": 11
};
var parts = /^\s*(\d+)\s+([A-Za-z]+)\s+(\d+)\s*$/.exec(str);
var dt;
if (parts) {
parts[2] = months[parts[2].toLowerCase()];
if (typeof parts[2] !== "undefined") {
dt = new Date(parseInt(parts[3], 10),
parts[2],
parseInt(parts[1], 10));
}
}
实例| 来源
然后您可以格式化生成的Date
对象。(同样,那里有库可以提供帮助。)
或者,当然,永远不要Date
直接从parts
.