扩展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中Math对象使用说明
Jan 16 Javascript
javascript 设置某DIV区域内的checkbox复选框
Nov 30 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
Jun 12 Javascript
javascript获取作用在元素上面的样式属性代码
Sep 20 Javascript
LABjs、RequireJS、SeaJS的区别
Mar 04 Javascript
js转化毫秒为时间格式代码
Apr 10 Javascript
一个很有趣3D球状标签云兼容IE8
Aug 22 Javascript
JS日期格式化之javascript Date format
Oct 01 Javascript
Bootstrap开关(switch)控件学习笔记分享
May 30 Javascript
js中class的点击事件没有效果的解决方法
Oct 13 Javascript
jquery日历插件e-calendar升级版
Nov 10 Javascript
flexslider.js实现移动端轮播
Feb 05 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
php防注入及开发安全详细解析
2013/08/09 PHP
php与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
javascript 动态创建表格
2015/01/08 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
Python-嵌套列表list的全面解析
2016/06/08 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
python在不同条件下的输入与输出
2020/02/13 Python
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
自荐信如何“自荐”
2013/10/24 职场文书
计算机操作自荐信
2013/12/07 职场文书
金融行业务员的自我评价
2013/12/13 职场文书
演讲稿格式范文
2014/05/19 职场文书
高三霸气励志标语
2014/06/24 职场文书
董事长岗位职责
2015/02/13 职场文书
2015年环卫工作总结
2015/04/28 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL