js获取本月、三个月、今年的日期插件dateHelp
最近看了一些关于面向对象的知识,最近工作中在做统计查询的时候需要用到本月、近三个月、今年的日期范围,所以下面用用面向对象的思想写了一个获取日期的插件,大家可以借鉴使用。
直接通过new DateHelp就可以调用了
var myDate = new DateHelp({
date:'2015-02-01',//从此日期开始计算
format:'yyyy/MM/dd'
});
myDate.getThisMonth();
myDate.getThreeMonth();
myDate.getThisYear();
dateHelp.js插件
/**
* 通过调用可以获取本月,近三个月,今年的日期
* @param obj
* @constructor
*/
function DateHelp(obj) {
/*var obj = {
date:'2015-02-01',//从此日期开始计算
type:'month',//以年月日向前计算:年(year),月(month),日(day)
value:'14',//向前计算的数值,年月日
format:'yyyy/mm/dd'//日期格式
}*/ this.date = obj.date;
this.type = obj.type;
this.value = obj.value == undefined ? obj.value : 0;
this.format = obj.format == undefined ? obj.format: 'yyyy/MM/dd'; //日期和非日期格式获取年月日
if (this.date instanceof Date){
//处理传进来的是日期函数的 this.year = this.date.getFullYear();
this.month = this.date.getMonth()+1;
this.day = this.date.getDate();
}else{
//处理传入的是非日期函数的 this.year = this.date.substr(0, 4);
this.month = this.date.substr(5, 2);
this.day = this.date.substr(8, 2);
} } DateHelp.prototype.beforeDate = function(type, value){ var _type = type || this.type,
_value = value || this.value,
_year = this.year,
_month = this.month,
_day = this.day; if (_type == 'year' || _type == '年'){
_year -= _value;
}else if (_type == 'month' || _type == '月'){
_year -= parseInt(_value / 12);
_month -= _value % 12;
if(_month <= 0){
_year -= 1;
_month += 12;
}
}else if (_type == 'day' || _type == '日'){ }else { } var date = new Date(_year, _month - 1, _day)
return this.formatDate(date, this.format);
} DateHelp.prototype.formatDate = function(date,fmt){ var o = {
"M+" : date.getMonth()+1, //月份
"d+" : date.getDate(), //日
"h+" : date.getHours(), //小时
"m+" : date.getMinutes(), //分
"s+" : date.getSeconds(), //秒
"q+" : Math.floor((date.getMonth()+3)/3), //季度
"S" : date.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt))
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
return fmt;
} DateHelp.prototype.getThisMonth = function() { var first = new Date(this.year, this.month - 1);
var last = new Date(this.year, this.month, 0); return this.formatDate(first, this.format) + " - " + this.formatDate(last, this.format);
} DateHelp.prototype.getThreeMonth = function() { return this.beforeDate('month', 3) + " - " + this.beforeDate('day', 0);
} DateHelp.prototype.getThisYear = function() { var first = new Date(this.year, 0, 1);
var last = new Date(this.year, 11, 31); return this.formatDate(first, this.format) + " - " + this.formatDate(last, this.format);
} /*
//示例
var myDate = new DateHelp({
date:'2015-02-01',//从此日期开始计算
format:'yyyy/MM/dd'
}); console.log(myDate.getThisMonth());
console.log(myDate.getThreeMonth());
console.log(myDate.getThisYear());*/
html测试代码
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="myJs/dateHelp.js"></script>
</head>
<body> <script> var myDate = new DateHelp({
date:new Date(),//从此日期开始计算
format:'yyyy/MM/dd'
}); console.log(myDate.getThisMonth());
console.log(myDate.getThreeMonth());
console.log(myDate.getThisYear());
</script>
</body>
</html>
js获取本月、三个月、今年的日期插件dateHelp的更多相关文章
- [Java] 获取本月周次和日期时间段信息
package com.wdcloud.monitoring.common; import java.text.SimpleDateFormat; import java.util.ArrayList ...
- JS 获取本月第一天零点时间戳并转化成yy-mm-dd
JS 获取本月第一天零点时间戳并转化成yy-mm-dd 格式 <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- js获取三天后的日期
js获取三天后的日期 setDate getNowAddTreeFormatDate() { var date = new Date(); date.setDate(date.getDate()+3) ...
- js获取7天之前的日期或者7天之后的日期
js获取7天之前的日期或者7天之后的日期(网上摘取的,记录自己使用) function fun_date(num) { var date1 = new Date(); //今天时间 var time1 ...
- js获取最近几天的日期(转载)
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- moment.js(moment-in-node.js)获取本月最后一天 不指定
http://tommyhu.cn/moment-in-nodejs/ //获取本月最后一天 to=using.moment(日期).endOf('month').format("YYYY- ...
- JS 毫秒日期相互转换 JS获取 今天 明天 昨天的日期
var dd = new Date(); var AddDayCount = 0; //0 今天 1 明天 -1 昨天 以此类推 dd.setDate(dd.getDate() + AddDayCou ...
- js获取N天后的日期
这个javascript函数是获取当前时间前后N天日期的方法,可以得到昨天,今天,明天,一月前,三月前,半年前,一年前的日期,只要修改参数就可以实现得到任何一个天数.具体用法如下: function ...
- JS获取最近三个月日期范围
function getLast3Month() { var now = new Date(); var year = now.getFullYear(); var month = now.getMo ...
随机推荐
- MongoDB 任意代码执行漏洞(CVE-2013-4142)
漏洞版本: MongoDB 2.4.0-2.4.4 漏洞描述: CVE ID:CVE-2013-4142 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种 ...
- 【Animations】
这个比较高端了!CSS3动画帧数科学计算法 基于css的3d和动画 基于css的3d和动画(2) 如何使用JavaScript控制CSS Animations(动画)和Transitions(过渡) ...
- 网络流(最大流) CQOI 2015 BZOJ 3931 网络吞吐量
3931: [CQOI2015]网络吞吐量 Description 路由是指通过计算机网络把信息从源地址传输到目的地址的活 动,也是计算机网络设计中的重点和难点.网络中实现路由转发的硬件设备称为路由器 ...
- TXT四则运算计算器
基本思想:使用getline函数从TXT文件中依次读出中缀表达式,将其转为后缀表达式后计算结果,并与用户结果比对. 整数.分数.小数的处理:将小数和整数都视为默认分母为1的分数.建立分数类,在中缀转换 ...
- hdu 2795 线段树
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795 #include <cstdio> #include <cmath> # ...
- winscp自动执行脚本
我们经常使用WinSCP工具通过sftp协议上传获取文件,本文描述通过bat批量处理文件. 首先,我们打开dos命令窗口使用 cd \d :D\WinSCP 打开WinSCP安装目录 上传文件: wi ...
- Jenkins 十: 访问控制
1. 打开“系统管理” –> “Configure Global Security”. 2. 选中“启用安全”. 3. 找到“安全域”,选中“Jenkins专有数据库”,选中“允许用户注册”. ...
- 武汉Uber优步司机奖励政策(1月18日~1月24日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- Dump 文件生成与分析
近期两天因为项目的须要,研究了一下Dump文件相关的知识,今天做一个小节(因为研究不久而且第一次写blog,希望网友们看到不要见笑). Dump文件是进程的内存镜像.能够把程序的运行状态通过调试器保存 ...
- PHP安全编程:HTTP请求欺骗(转)
一个比欺骗表单更高级和复杂的攻击方式是HTTP请求欺骗.这给了攻击者完全的控制权与灵活性,它进一步证明了不能盲目信任用户提交的任何数据. 为了演示这是如何进行的,请看下面位于http://exampl ...