通过日期掩码将日期转换成字符串的方法
无功monthnames = {一月
无功daynames = {星期日
星期五
无功shortmths = {简
SEP
无功shortdays = {太阳
无功stringtodate =功能(姓名,sformat,截止){
日期值为 /输入字符串,它的格式字符串e.g.'dd-mmm-yy
可选:2位数的截止(整数)。
如果没有'd'appears在 /格式字符串,然后第一个月假设。
年份是如果20和截止值是,那么值将被转换为30。
如果到2020,年为40,那么这个值将转换为1940。
如果没有截止提供/ '20'will是预挂起一年(YY)。
输出:一个字符串的格式 / / / dd'or 'yyyy毫米。
不要试图把某些 /将组合如DMM,MDD,DDM,yyyyd。
VaR稀疏,fndsingle;
稀疏将建设 / / / format'yyyy MM DD
姓名= sdate.tostring()ToUpperCase();
sformat = sformat.touppercase();
如果(sformat.search( /嗯|嗯 /)+ 1){ / / /月03更换损坏,等等。
姓名= sdate.replace(new RegExp('(' + '(' | shortmths.join + ')){到} *,'gi),
函数(m){
var i = shortmths.indexof(m.charat(0)。ToUpperCase()+
M.substr (1, 2).ToLowerCase ()) + 1;
返回((我< 10)0 +我:+我)ToString();
});
sformat = sformat.replace( /嗯|嗯 / g,'mm);
}
如果(sformat.search( / / dddd | DDD)+ 1){ / / /星期二取代二,等等。
姓名= sdate.replace(new RegExp('(' + '(' | shortdays.join + ')){到} *,'gi),);
sformat = sformat.replace( / dddd | DDD / g,);
}
姓名= sdate.replace( /(^ | D)( D)(= D |美元)/ g,功能(0美元、1美元、2美元){
2的数字02
返回1美元+ 0+ 2美元;
});
sformat = sformat.replace( /(^ | { ^ DMY })(D | m)(= { ^ DMY } |美元)/ g,功能(0美元、1美元、2美元){
返回1美元+ 2美元+ 2美元替换D或M;
});
是否还有单一的DS或
(fndsingle = sformat.search /(^ | { ^ D D({ })} ^ D |美元)|(^ | { ^ M M({ })^米} |美元)/ + 1);
不要试图 / /做解析,例如,'dmm
如果(fndsingle)回报;
sformat = sformat.replace( /(^ | { ^ Y })(YY)(= { ^ Y } |美元)/ g,功能(0美元,1美元,2美元,指数){)
无功tempdate = sdate.substr(0,指数+ 1);
(截止)(tempdate =(parseInt(sdate.substr(指数1, 2),10)>截止)'19:20:20');
tempdate = sdate.substr(指数+ 1);
姓名= tempdate;
回报1美元+ 2美元+ 2美元;
});
稀疏=('yyyy /毫米/ DD)。更换( /年|毫米| DD / g,功能(M){)
返回(sformat.indexof(M)+ 1)
SDate.substr(sformat.indexof(M),m.length):;
});
如果(sparsed.charat(0)= =){
如果指定为当前年份,则不指定年份
稀疏=(新的日期()GetFullYear())+稀疏;
}
如果(sparsed.charat(sparsed.length - 1)= =){
没有日期如果,假设第一个月
稀疏= 01;
}
多达10个字符。结束
返回(sparsed.length = = 10):稀疏;
};
希望本文能对大家的javascript程序设计有所帮助。