扩展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 相关文章推荐
img onload事件绑定各浏览器均可执行
Dec 19 Javascript
JQuery对表单元素的基本操作使用总结
Jul 18 Javascript
JQuery控制Radio选中方法分析
May 29 Javascript
js电话号码验证方法
Sep 28 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
Apr 29 Javascript
JS全角与半角转化实例(分享)
Jul 04 Javascript
示例vue 的keep-alive缓存功能的实现
Dec 13 Javascript
jQuery子选择器与可见性选择器实例分析
Jun 28 jQuery
js实现简单放大镜效果
Mar 07 Javascript
Node.js API详解之 V8模块用法实例分析
Jun 05 Javascript
如何实现小程序与小程序之间的跳转
Nov 04 Javascript
手写Vue2.0 数据劫持的示例
Mar 04 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简单静态页生成过程
2008/03/27 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
jquery中ajax学习笔记3
2011/10/16 Javascript
Js获取数组最大和最小值示例代码
2013/10/29 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
2016/11/07 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
2018/10/29 Javascript
python实现线程池的方法
2015/06/30 Python
Python中扩展包的安装方法详解
2017/06/14 Python
python文本数据相似度的度量
2018/03/12 Python
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
20年同学聚会感言
2014/02/03 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
2014年法务工作总结
2014/12/11 职场文书
酒店财务总监岗位职责
2015/04/03 职场文书
怎样写观后感
2015/06/19 职场文书
聘任合同书
2015/09/21 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
深入探讨opencv图像矫正算法实战
2021/05/21 Python
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP