扩展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 相关文章推荐
html中使用javascript调用本地程序(exe、doc等)实现代码
Apr 26 Javascript
jQuery中:eq()选择器用法实例
Dec 29 Javascript
整理Javascript基础入门学习笔记
Nov 29 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
Jul 14 Javascript
js微信应用场景之微信音乐相册案例分享
Aug 11 Javascript
vue组件中使用iframe元素的示例代码
Dec 13 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
Feb 13 jQuery
Webpack4+Babel7+ES6兼容IE8的实现
Apr 10 Javascript
学习LayUI时自研的表单参数校验框架案例分析
Jul 29 Javascript
vue 自定义右键样式的实例代码
Nov 06 Javascript
微信小程序实现拼图小游戏
Oct 22 Javascript
vue实现登录、注册、退出、跳转等功能
Dec 23 Vue.js
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面向对象的使用教程 简单数据库连接
2006/11/25 PHP
ZF等常用php框架中存在的问题
2008/01/10 PHP
php 空格,换行,跳格使用说明
2009/12/18 PHP
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
python 数据的清理行为实例详解
2017/07/12 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
pygame实现飞机大战
2020/03/11 Python
Python日志处理模块logging用法解析
2020/05/19 Python
python3访问字典里的值实例方法
2020/11/18 Python
HTML5的新特性(1)
2016/03/03 HTML / CSS
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
天巡全球:Skyscanner Global
2017/06/20 全球购物
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
爱尔兰旅游网站:ebookers.ie
2020/01/24 全球购物
音乐表演专业毕业生求职信
2013/10/14 职场文书
旅游管理本科生求职信
2013/10/14 职场文书
工艺员岗位职责
2014/02/11 职场文书
行政内勤岗位职责
2014/04/07 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
心术观后感
2015/06/11 职场文书
商务英语邮件开头问候语
2015/11/10 职场文书