我不知道你在哪裏得到Date.parse
調用,JavaScript的Date.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));
}
}
Live example | source
然後,您可以格式化生成的Date
對象。 (再次,有庫在那裏幫助。)
或者,當然,從來沒有實際製作Date
,只是直接從parts
格式。
'Date.parse'只帶一個參數。 – 2012-07-26 14:24:47