1.format
// 對(duì)Date的擴(kuò)展求摇,將 Date 轉(zhuǎn)化為指定格式的String
// 月(M)、日(d)辉巡、小時(shí)(h)恨憎、分(m)、秒(s)郊楣、季度(q) 可以用 1-2 個(gè)占位符憔恳,
// 年(y)可以用 1-4 個(gè)占位符,毫秒(S)只能用 1 個(gè)占位符(是 1-3 位的數(shù)字)
// 例子:
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype.Format = function (fmt) { //author: meizz
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小時(shí)
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
調(diào)用:
var time1 = new Date().Format("yyyy-MM-dd");
var time2 = new Date().Format("yyyy-MM-dd HH:mm:ss");
2.Date的淺拷貝 和 深拷貝
昨天遇到了一個(gè) 關(guān)于data的淺拷貝問題
var d = new Date(moreDay);// var d = moreDay d.addMonths(i); d.setDate(day); d.setHours(getRandomNum(1)); d.setMinutes(23); d.setSeconds(54); d.setMilliseconds(getRandomNum(3));
當(dāng)使用 var d = moreDay的時(shí)候
d的改變會(huì)造成 moreDay的無限改變 這個(gè)時(shí)候要當(dāng)moreDay不變的情況下 d進(jìn)行改變
就要對(duì)d 再次進(jìn)行初始化
var moreDay = "2018-10-03"
var d = new Date(moreDay);
console.log(d)
2018-10-03T00:00:00.000Z
設(shè)置時(shí)分秒 毫秒等
3.轉(zhuǎn)換為 20170418180801 類似 YYYYMMDDHHmmss 格式
使用 moment 庫(kù)
var a = new Date()
var time1 = moment(new Date()).format("YYYYMMDDhhmmss");