扩展javascript的Date方法实现代码(prototype)_Javascript教程-查字典教程网
扩展javascript的Date方法实现代码(prototype)
扩展javascript的Date方法实现代码(prototype)
发布时间:2016-12-30 来源:查字典编辑
摘要:最近项目的部分功能正在重构,前端也基本上推翻了原来的设计,在之前半年的积累上有了新的方案。这几天在做前端的重构和设计,遇到了一些问题。因为这...

最近项目的部分功能正在重构,前端也基本上推翻了原来的设计,在之前半年的积累上有了新的方案。这几天在做前端的重构和设计,遇到了一些问题。因为这个模块最主要的还是对时间的控制,大量的操作js的Date对象,可是js原生的Date方法太少了,操作起来太不方便。于是打算扩展下Date的prototype。

长期从事C#的开发,被C#影响着我的思维。C#中DateTime的操作就很方便,于是就参考它对js的Date做了扩展。

复制代码 代码如下:

//将指定的毫秒数加到此实例的值上

Date.prototype.addMilliseconds = function (value) {

var millisecond = this.getMilliseconds();

this.setMilliseconds(millisecond + value);

return this;

};

//将指定的秒数加到此实例的值上

Date.prototype.addSeconds = function (value) {

var second = this.getSeconds();

this.setSeconds(second + value);

return this;

};

//将指定的分钟数加到此实例的值上

Date.prototype.addMinutes = function (value) {

var minute = this.addMinutes();

this.setMinutes(minute + value);

return this;

};

//将指定的小时数加到此实例的值上

Date.prototype.addHours = function (value) {

var hour = this.getHours();

this.setHours(hour + value);

return this;

};

//将指定的天数加到此实例的值上

Date.prototype.addDays = function (value) {

var date = this.getDate();

this.setDate(date + value);

return this;

};

//将指定的星期数加到此实例的值上

Date.prototype.addWeeks = function (value) {

return this.addDays(value * 7);

};

//将指定的月份数加到此实例的值上

Date.prototype.addMonths = function (value) {

var month = this.getMonth();

this.setMonth(month + value);

return this;

};

//将指定的年份数加到此实例的值上

Date.prototype.addYears = function (value) {

var year = this.getFullYear();

this.setFullYear(year + value);

return this;

};

//格式化日期显示 format="yyyy-MM-dd hh:mm:ss";

Date.prototype.format = function (format) {

var o = {

"M+": this.getMonth() + 1, //month

"d+": this.getDate(), //day

"h+": this.getHours(), //hour

"m+": this.getMinutes(), //minute

"s+": this.getSeconds(), //second

"q+": Math.floor((this.getMonth() + 3) / 3), //quarter

"S": this.getMilliseconds() //millisecond

}

if (/(y+)/.test(format)) {

format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));

}

for (var k in o) {

if (new RegExp("(" + k + ")").test(format)) {

format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));

}

}

return format;

}

使用方法我想应该不用多说了,就是:

复制代码 代码如下:

var date = new Date();

date.addHours(1);

date.addYears(2);

document.write(date.format('yyyy-MM-dd hh:mm:ss'));

希望这个扩展方法可以帮助到大家。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类