国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解JavaScript時間處理之幾個月前或幾個月后的指定日期

2019-11-19 18:22:28
字體:
來源:轉載
供稿:網友

在平常項目開發過程中,經常會遇到需要在JavaScript中處理時間的情況,無非兩種(1,邏輯處理  2,格式轉換處理)。當然要說相關技術博,園子里閉著眼睛都能抓一把,但是我要做的是:既然有幸被我碰到了,就要盡可能的分析轉化為自己最適合自己的東西,成為自己知識庫的一部分;同時希望能幫助有需要的同學解決遇到的相關小問題。

時間邏輯處理

此類型常用需求為:推算幾個月后(前)的今天的日期。

/** *獲取幾個月前的輸入日期 *{param:DateTime} date 輸入日期(YYYY-MM-DD) *{param:number } monthNum 月數 */ GetPreMonthDay: function (date,monthNum) {  var dateArr = date.split('-');  var year = dateArr[0]; //獲取當前日期的年份  var month = dateArr[1]; //獲取當前日期的月份  var day = dateArr[2]; //獲取當前日期的日  var days = new Date(year, month, 0);  days = days.getDate(); //獲取當前日期中月的天數  var year2 = year;  var month2 = parseInt(month) - monthNum;  if (month2 <=0) {   year2 = parseInt(year2) - parseInt(month2 / 12 == 0 ? 1 : parseInt(month2) / 12);   month2 = 12 - (Math.abs(month2) % 12);  }  var day2 = day;  var days2 = new Date(year2, month2, 0);  days2 = days2.getDate();  if (day2 > days2) {   day2 = days2;  }  if (month2 < 10) {   month2 = '0' + month2;  }  var t2 = year2 + '-' + month2 + '-' + day2;  return t2; }
 /** *獲取下一個月的輸入日期 *{param:DateTime} date 輸入日期(YYYY-MM-DD) *{param:number } monthNum 月數 */ GetNextMonthDay: function (date, monthNum) {  var dateArr = date.split('-');  var year = dateArr[0]; //獲取當前日期的年份  var month = dateArr[1]; //獲取當前日期的月份  var day = dateArr[2]; //獲取當前日期的日  var days = new Date(year, month, 0);  days = days.getDate(); //獲取當前日期中的月的天數  var year2 = year;  var month2 = parseInt(month) + parseInt(monthNum);  if (month2 >12) {   year2 = parseInt(year2) + parseInt((parseInt(month2) / 12 == 0 ? 1 : parseInt(month2) / 12));   month2 = parseInt(month2) % 12;  }  var day2 = day;  var days2 = new Date(year2, month2, 0);  days2 = days2.getDate();  if (day2 > days2) {   day2 = days2;  }  if (month2 < 10) {   month2 = '0' + month2;  }  var t2 = year2 + '-' + month2 + '-' + day2;  return t2; }

測試效果:

發沒發現有個問題,通過29日來推,前后都會是29。 1月31號推到二月就是2月29(因為2月就29天)。

那么這種邏輯對于有些需求來說就得根據實際情況變動一下。譬如:我想繳納預存一個月的費用。當前我已經繳納了2.1-2.29(2月一整月)的費用,預存一個月就應該是(3.1-3.31)。通過此邏輯得到卻是3.1-3.29,所以使用請根據實際情況!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石屏县| 和田县| 永仁县| 沈丘县| 时尚| 蒙山县| 五莲县| 合山市| 万年县| 恩平市| 宜黄县| 如东县| 波密县| 青川县| 六安市| 麻栗坡县| 翁源县| 莱西市| 遂平县| 宁河县| 双牌县| 巴楚县| 辽阳县| 商河县| 大余县| 涟源市| 南雄市| 休宁县| 庆云县| 岱山县| 佳木斯市| 威信县| 兰考县| 石城县| 高碑店市| 巴青县| 大姚县| 修文县| 英超| 娄烦县| 保康县|