Date使用

2017-09-19  本文已影响26人  贝灬小晖

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, (this.getFullYear() + "").substr(4 - RegExp.1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.1, (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");

上一篇下一篇

猜你喜欢

热点阅读