js获取日期:昨天今天和明天、后天
<html>
<head>
<metahttp-equiv="Content-Type"content="textml;charset=utf-8">
<title>js获取日期:前天、昨天、今天、明天、后天-Liehuo.Net</title>
</head>
<body>
<scriptlanguage="JavaScript"type="text/javascript">
functionGetDateStr(AddDayCount){
vardd=newDate();
dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期
vary=dd.getFullYear();
varm=dd.getMonth()+1;//获取当前月份的日期
vard=dd.getDate();
returny+"-"+m+"-"+d;
}
document.write("前天:"+GetDateStr(-2));
document.write("<br/>昨天:"+GetDateStr(-1));
document.write("<br/>今天:"+GetDateStr(0));
document.write("<br/>明天:"+GetDateStr(1));
document.write("<br/>后天:"+GetDateStr(2));
document.write("<br/>大后天:"+GetDateStr(3));
</script>
</body>
<ml>
其中有一种方法是:Date.parse(dateVal),此函数功能强大,但是有个致命的缺点,那就是不支持我们常用的“年-月-日”格式,短日期可以使用“/”或“-”作为日期分隔符,但是必须用月/日/年的格式来表示,例如"7/20/96"。
另一种方法是使用split,比如:
vardtStr="2006-11-25";
vardtArr=dtStr.split("-");
vardt=newDate(dtArr[0],dtArr[1],dtArr[2]);
但这种方法较为死板,要求固定的日期格式,只有在没有办法的情况下才用。
如果我们可以将年月日拆分开,就尽量将其拆开,比如ASP分别输出年月日。然后用newDate来处理,返回的便是日期类型。
日期格式化
<scriptlanguage="javascript"type="text/javascript"><!--
/**
*对Date的扩展,将Date转化为指定格式的String
*月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q)可以用1-2个占位符
*年(y)可以用1-4个占位符,毫秒(S)只能用1个占位符(是1-3位的数字)
*eg:
*(newDate()).pattern("yyyy-MM-ddhh:mm:ss.S")==>2006-07-0208:09:04.423
*(newDate()).pattern("yyyy-MM-ddEHH:mm:ss")==>2009-03-10二20:09:04
*(newDate()).pattern("yyyy-MM-ddEEhh:mm:ss")==>2009-03-10周二08:09:04
*(newDate()).pattern("yyyy-MM-ddEEEhh:mm:ss")==>2009-03-10星期二08:09:04
*(newDate()).pattern("yyyy-M-dh:m:s.S")==>2006-7-28:9:4.18
*/
Date.prototype.pattern=function(fmt){
varo={
"M+":this.getMonth()+1,//月份
"d+":this.getDate(),//日
"h+":this.getHours()%12==0?12:this.getHours()%12,//小时
"H+":this.getHours(),//小时
"m+":this.getMinutes(),//分
"s+":this.getSeconds(),//秒
"q+":Math.floor((this.getMonth()+3)/3),//季度
"S":this.getMilliseconds()//毫秒
};
varweek={
"0":"\u65e5",
"1":"\u4e00",
"2":"\u4e8c",
"3":"\u4e09",
"4":"\u56db",
"5":"\u4e94",
"6":"\u516d"
};
if(/(y+)/.test(fmt)){
fmt=fmt.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));
}
if(/(E+)/.test(fmt)){
fmt=fmt.replace(RegExp.$1,((RegExp.$1.length>1)?(RegExp.$1.length>2?"\u661f\u671f":"\u5468"):"")+week[this.getDay()+""]);
}
for(varkino){
if(newRegExp("("+k+")").test(fmt)){
fmt=fmt.replace(RegExp.$1,(RegExp.$1.length==1)?(o[k]):(("00"+o[k]).substr((""+o[k]).length)));
}
}
returnfmt;
}
vardate=newDate();
window.alert(date.pattern("yyyy-MM-ddhh:mm:ss"));
//--></script>