js日期插件dateHelp获取本月、三个月、今年的日期
作者:bea
最近看了一些关于面向对象的知识,最近工作中在做统计查询的时候需要用到本月、近三个月、今年的日期范围,所以下面用用面向对象的思想写了一个获取日期的插件,大家可以借鉴使用。 直接通过new DateHelp就可以调用了 var myDate = new DateHelp({date:'2015-02-01',//从此日期开始计算format:'yyyy/MM/dd'});myDate.getThisMonth();myDate.getThreeMonth();myDate.g
最近看了一些关于面向对象的知识,最近工作中在做统计查询的时候需要用到本月、近三个月、今年的日期范围,所以下面用用面向对象的思想写了一个获取日期的插件,大家可以借鉴使用。
直接通过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>
希望本文所述对大家学习javascript程序设计有所帮助。
有用 | 无用
直接通过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>
希望本文所述对大家学习javascript程序设计有所帮助。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 使用JQuery实现智能表单验证功能
- js表单处理中单选、多选、选择框值的获取及表单的序列化
- JS实现设置ff与ie元素绝对位置的方法
- jQuery控制frames及frame页面JS的方法
- 三种Node.js写文件的方式
- javascript创建对象、对象继承的实用方式详解
- JavaScript实现带播放列表的音乐播放器实例分享
- 详解JavaScript数组和字符串中去除重复值的方法
- JavaScript实现字符串与日期的互相转换及日期的格式化
- JavaScript中将数组进行合并的基本方法讲解
- Bootstrap每天必学之日期控制
- JavaScript过滤字符串中的中文与空格方法汇总
- jquery+json实现分页效果
- 利用JQuery写一个简单的异步分页插件
- 基于jquery编写分页插件
- JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
- javascript特殊日历控件分享
- 基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
- 论JavaScript模块化编程