var DateFormat = {
format : function(date, pattern) {
var o = {
"M+" : date.getMonth() + 1,
"d+" : date.getDate(),
"h+" : date.getHours(),
"m+" : date.getMinutes(),
"s+" : date.getSeconds(),
"q+" : Math.floor((date.getMonth() + 3) / 3),
"S" : date.getMilliseconds()
};
if (/(y+)/.test(pattern)) {
pattern = pattern.replace(RegExp.$1,(date.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for ( var k in o) {
if (new RegExp("(" + k + ")").test(pattern)) {
pattern = pattern.replace(RegExp.$1,RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return pattern;
},
parse : function(string,pattern) {
var newDate = new Date();
if(string&&pattern){
newDate.setFullYear(getNum("y",newDate.getFullYear()), getNum("M",newDate.getMonth()+1) - 1, getNum("d",newDate.getDate()));
newDate.setHours(getNum("h",newDate.getHours()), getNum("m",newDate.getMinutes()), getNum("s",newDate.getSeconds()),getNum("S",newDate.getMilliseconds()));
function getNum(p,devalue) {
var temp = pattern.indexOf(p);
if (temp != -1) {
var start = temp;
var end = temp;
for ( var i = 0; i < 4; i++) {
var temp = pattern.indexOf(p, temp + 1);
end = end + 1;
if (temp != end) {
break;
}
}
if (start != -1) {
devalue = string.substring(start, end);
}
}
return devalue;
}
}
return newDate;
}
}
alert(DateFormat.format(new Date(), "yyyy|MM|dd"));
alert(DateFormat.parse("2013|05|06", "yyyy|MM|dd"));