1.format
// 對Date的擴展,將 Date 轉化為指定格式的String
// 月(M)、日(d)、小時(h)、分(m)、秒(s)、季度(q) 可以用 1-2 個占位符,
// 年(y)可以用 1-4 個占位符,毫秒(S)只能用 1 個占位符(是 1-3 位的數字)
// 例子:
// (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(), //小時
"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;
}
調用:
var time1 = new Date().Format("yyyy-MM-dd");
var time2 = new Date().Format("yyyy-MM-dd HH:mm:ss");
2.Date的淺拷貝 和 深拷貝
昨天遇到了一個 關于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));
當使用 var d = moreDay的時候
d的改變會造成 moreDay的無限改變 這個時候要當moreDay不變的情況下 d進行改變
就要對d 再次進行初始化
var moreDay = "2018-10-03"
var d = new Date(moreDay);
console.log(d)
2018-10-03T00:00:00.000Z
設置時分秒 毫秒等
3.轉換為 20170418180801 類似 YYYYMMDDHHmmss 格式
使用 moment 庫
var a = new Date()
var time1 = moment(new Date()).format("YYYYMMDDhhmmss");