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

最近项目的部分功能正在重构,前端也基本上推翻了原来的设计,在之前半年的积累上有了新的方案。这几天在做前端的重构和设计,遇到了一些问题。因为这个模块最主要的还是对时间的控制,大量的操作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的Date方法实现代码(prototype)】相关文章:

JavaScript的9种继承实现方式归纳

在JavaScript中使用NaN值的方法

删除javascript所创建子节点的方法

JavaScript中的anchor()方法使用详解

JavaScript中的blink()方法的使用

JavaScript中的fontsize()方法使用介绍

浅谈JavaScript中的Math.atan()方法的使用

javascript先序遍历DOM树的方法

JavaScript中的parse()方法使用简介

javascript中FOREACH数组方法使用示例

精品推荐
分类导航