87,904
社区成员
发帖
与我相关
我的任务
分享
//将字符串转换为日期
String.prototype.toDate = function(format) {
pattern = format.replace("yyyy", "(\\~1{4})").replace("yy", "(\\~1{2})")
.replace("MM", "(\\~1{2})").replace("M", "(\\~1{1,2})")
.replace("dd", "(\\~1{2})").replace("d", "(\\~1{1,2})").replace(/~1/g, "d");
var returnDate;
if (new RegExp(pattern).test(this)) {
var yPos = format.indexOf("yyyy");
var mPos = format.indexOf("MM");
var dPos = format.indexOf("dd");
if (mPos == -1) mPos = format.indexOf("M");
if (yPos == -1) yPos = format.indexOf("yy");
if (dPos == -1) dPos = format.indexOf("d");
var pos = new Array(yPos + "y", mPos + "m", dPos + "d").sort();
var data = { y: 0, m: 0, d: 0 };
var m = this.match(pattern);
for (var i = 1; i < m.length; i++) {
if (i == 0) return;
var flag = pos[i - 1].split('')[1];
data[flag] = m[i];
};
if (data.y.toString().length == 2) {
data.y = parseInt("20" + data.y);
}
data.m = data.m - 1;
returnDate = new Date(data.y, data.m, data.d);
}
if (returnDate == null || isNaN(returnDate)) returnDate = new Date();
return returnDate;
}