扩展javascript的Date方法实现代码(prototype)


Posted in Javascript onNovember 20, 2010

最近项目的部分功能正在重构,前端也基本上推翻了原来的设计,在之前半年的积累上有了新的方案。这几天在做前端的重构和设计,遇到了一些问题。因为这个模块最主要的还是对时间的控制,大量的操作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中如何处理引号编码"
Aug 15 Javascript
JavaScript中的闭包
Feb 24 Javascript
Javascript对象字面量的理解
Jun 22 Javascript
详解Bootstrap的iCheck插件checkbox和radio
Aug 24 Javascript
微信小程序 自己制作小组件实例详解
Dec 22 Javascript
Bootstrap超大屏幕的实现代码
Mar 22 Javascript
详解webpack es6 to es5支持配置
May 04 Javascript
js CSS3实现卡牌旋转切换效果
Jul 04 Javascript
基于Vue单文件组件详解
Sep 15 Javascript
ES6 系列之 WeakMap的使用示例
Aug 06 Javascript
详解Node.js读写中文内容文件操作
Oct 10 Javascript
JavaScript实现随机点名器
Mar 25 Javascript
javascript AOP 实现ajax回调函数使用比较方便
Nov 20 #Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
Nov 20 #Javascript
javascript来定义类的规范小结
Nov 19 #Javascript
Javascript面象对象成员、共享成员变量实验
Nov 19 #Javascript
js 创建快捷方式的代码(fso)
Nov 19 #Javascript
javascript 函数参数限制说明
Nov 19 #Javascript
Javascript的并行运算实现代码
Nov 19 #Javascript
You might like
实用函数9
2007/11/08 PHP
PHP批量生成缩略图的代码
2008/07/19 PHP
php中require和require_once的区别说明
2014/02/27 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
2015/06/15 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
JS作用域深度解析
2016/12/29 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
2017/10/08 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
python3操作mysql数据库的方法
2017/06/23 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
读书心得体会
2013/12/28 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
经济担保书范文
2014/04/02 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
2016学校元旦晚会经典开场白台词
2015/12/03 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
python如何正确使用yield
2021/05/21 Python
Python预测分词的实现
2021/06/18 Python