js日期插件dateHelp獲取本月、三個(gè)月、今年的日期
來(lái)源:易賢網(wǎng) 閱讀:1021 次 日期:2016-07-22 16:15:54
溫馨提示:易賢網(wǎng)小編為您整理了“js日期插件dateHelp獲取本月、三個(gè)月、今年的日期”,方便廣大網(wǎng)友查閱!

最近看了一些關(guān)于面向?qū)ο蟮闹R(shí),最近工作中在做統(tǒng)計(jì)查詢的時(shí)候需要用到本月、近三個(gè)月、今年的日期范圍,所以下面用用面向?qū)ο蟮乃枷雽?xiě)了一個(gè)獲取日期的插件,大家可以借鑒使用。

直接通過(guò)new DateHelp就可以調(diào)用了

var myDate = new DateHelp({

date:'2015-02-01',//從此日期開(kāi)始計(jì)算

format:'yyyy/MM/dd'

});

myDate.getThisMonth();

myDate.getThreeMonth();

myDate.getThisYear();

dateHelp.js插件

/**

 * 通過(guò)調(diào)用可以獲取本月,近三個(gè)月,今年的日期

 * @param obj

 * @constructor

 */

function DateHelp(obj) {

 /*var obj = {

  date:'2015-02-01',//從此日期開(kāi)始計(jì)算

  type:'month',//以年月日向前計(jì)算:年(year),月(month),日(day)

  value:'14',//向前計(jì)算的數(shù)值,年月日

  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){

  //處理傳進(jìn)來(lái)的是日期函數(shù)的

  this.year = this.date.getFullYear();

  this.month = this.date.getMonth()+1;

  this.day = this.date.getDate();

 }else{

  //處理傳入的是非日期函數(shù)的

  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(),     //小時(shí)

  "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',//從此日期開(kāi)始計(jì)算

 format:'yyyy/MM/dd'

});

console.log(myDate.getThisMonth());

console.log(myDate.getThreeMonth());

console.log(myDate.getThisYear());*/

html測(cè)試代碼

<!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(),//從此日期開(kāi)始計(jì)算

  format:'yyyy/MM/dd'

 });

 console.log(myDate.getThisMonth());

 console.log(myDate.getThreeMonth());

 console.log(myDate.getThisYear());

</script>

</body>

</html>

希望本文所述對(duì)大家學(xué)習(xí)javascript程序設(shè)計(jì)有所幫助。

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)