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>