js獲取日期:前天预吆、昨天、今天胳泉、明天拐叉、后天?
/**
*ldq2017年11月14日16:12:06
* 獲取當前時間
*/
function GetDateStr(AddDayCount) {
var dd = new Date();
dd.setDate(dd.getDate()+AddDayCount);//獲取AddDayCount天后的日期
var y = dd.getFullYear();
var m = dd.getMonth()+1;//獲取當前月份的日期
var d = dd.getDate();
return y+"-"+m+"-"+d;
}
console.log("前天:"+GetDateStr(-2));
console.log("
昨天:"+GetDateStr(-1));console.log("
今天:"+GetDateStr(0));console.log("
明天:"+GetDateStr(1));console.log("
后天:"+GetDateStr(2));console.log("
大后天:"+GetDateStr(3));
其中有一種方法是:Date.parse(dateVal),此函數(shù)功能強大扇商,但是有個致命的缺點凤瘦,那就是不支持我們常用的“年-月-日”格式,短日期可以使用“/”或“-”作為日期分隔符案铺,但是必須用月/日/年的格式來表示廷粒,例如"7/20/96"。
另一種方法是使用 split红且,比如:
var dtStr = "2006-11-25";
var dtArr = dtStr.split("-");
var dt = new Date(dtArr[0], dtArr[1], dtArr[2]);
但這種方法較為死板,要求固定的日期格式涤姊,只有在沒有辦法的情況下才用暇番。
如果我們可以將年月日拆分開,就盡量將其拆開思喊,比如 ASP 分別輸出年月日壁酬。然后用 new Date 來處理,返回的便是日期類型恨课。
日期格式化
/**
*?對Date的擴展舆乔,將?Date?轉(zhuǎn)化為指定格式的String
*?月(M)、日(d)剂公、12小時(h)希俩、24小時(H)、分(m)纲辽、秒(s)颜武、周(E)璃搜、季度(q)?可以用?1-2?個占位符
*?年(y)可以用?1-4?個占位符,毫秒(S)只能用?1?個占位符(是?1-3?位的數(shù)字)
*?eg:
*?(new?Date()).pattern("yyyy-MM-dd?hh:mm:ss.S")?==>?2006-07-02?08:09:04.423
*?(new?Date()).pattern("yyyy-MM-dd?E?HH:mm:ss")?==>?2009-03-10?二?20:09:04
*?(new?Date()).pattern("yyyy-MM-dd?EE?hh:mm:ss")?==>?2009-03-10?周二?08:09:04
*?(new?Date()).pattern("yyyy-MM-dd?EEE?hh:mm:ss")?==>?2009-03-10?星期二?08:09:04
*?(new?Date()).pattern("yyyy-M-d?h:m:s.S")?==>?2006-7-2?8: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-dd?hh:mm:ss"));
//?-->