>

上个月日期的处理方法

- 编辑:正版管家婆马报彩图 -

上个月日期的处理方法

本文实例介绍了javascript七日前、一个月前的落实代码,对于javascript日期管理举行了大致深入分析,共享给大家供大家参照他事他说加以考察,具体内容如下

在平凡项目支出进程中,平时会遇上供给在JavaScript中拍卖时间的情景,无非三种(1,逻辑管理  2,格式转变处理)。当然要说相关手艺博,园子里闭着双眼都能抓一把,可是笔者要做的是:既然有幸被自身遇见了,就要尽大概的解析转化为投机最适合自身的事物,成为本人知识库的一部分;同期希望能帮助有亟待的同班化解遭受的相干小题目。

<html>
<head>
 <title></title>
 <script src="../Script/jQuery/jquery-1.6.2.min.js" type="text/javascript"></script>
 <script src="../Script/MTHCRMWidget/MTHCRMWidget.js" type="text/javascript"></script>
 <script type="text/javascript">
  $(function () {
   myClick();//点击事件触发
  })

  //专门包装点击事件;
  function myClick() {
   $(".tbBtn").click(function () {
    var sid = $(this).attr("id");
    var agoDate = "";
    var Cdate = new Date();
    if (sid == "CbtnNull") {
     $("#txtCallCycleBegin").val("");
     $("#txtCallCyclecurrend").val("");
    } else if (sid == "CbtnMoon") {
     agoDate = ProcessDate(30);
     $("#txtCallCycleBegin").val("{0}-{1}-{2}".format(agoDate.Year, agoDate.Moon, agoDate.Day));
     $("#txtCallCyclecurrend").val("{0}-{1}-{2}".format(Cdate.getFullYear(), Cdate.getMonth() + 1, Cdate.getDate()));
    } else {
     agoDate = ProcessDate(7);
     $("#txtCallCycleBegin").val("{0}-{1}-{2}".format(agoDate.Year, agoDate.Moon, agoDate.Day));
     $("#txtCallCyclecurrend").val("{0}-{1}-{2}".format(Cdate.getFullYear(), Cdate.getMonth() + 1, Cdate.getDate()));
    }
   })
  }

  //处理日期的函数,返回一个字面量;
  function ProcessDate(type) {
   //1.0获取现在时间的年月日:
   var currentTime = new Date("2016-01-02"); //得到当前的时间
   var currentYear = currentTime.getFullYear(); //得到当前的年份
   var currentMoon = currentTime.getMonth() + 1; //得到当前的月份(系统默认为0-11,所以要加1才算是当前的月份)
   var currentDay = currentTime.getDate(); //得到当前的天数

   //2.0获取当前时间的一个月内的年月日:(一个月内的大众业务需求为:当前时间的月份-1,当前时间的天数+1)
   var agoDay = "";
   var agoMoon = currentMoon;
   var agoYear = currentYear;
   var max = "";
   switch (type) {
    case 30:
     agoDay = currentDay + 1;
     agoMoon = currentMoon - 1;
     max = new Date(agoYear, agoMoon, 0).getDate(); //获取上个月的总天数
     break;
    case 7:
     agoDay = currentDay - 6;
     if (agoDay < 0) {
      agoMoon = currentMoon - 1;//月份减1
      max = new Date(agoYear, agoMoon, 0).getDate(); //获取上个月的总天数
      agoDay = max + agoDay;//天数在上个月的总天数的基础上减去负数
     }
     break;
   }

   //3.0对处理的年月日作逻辑判断


   //如果beginDay > max(如果是当前时间的天数+1后的数值超过了上个月的总天数: 天数变为1,月份增加1)
   if (agoDay > max) {
    agoDay = 1;
    agoMoon += 1;
   }

   //如果月份当月为1月的时候, 那么一个月内: 年:-1 月:12 日:依然不变 
   if (agoMoon == 0) {
    agoMoon = 12;
    agoYear = currentYear - 1;
   }

   //4.0对已经处理好的数据作格式处理(单位数则自动补零)
   currentMoon = Appendzero(currentMoon);
   currentDay = Appendzero(currentDay);
   agoMoon = Appendzero(agoMoon);
   agoDay = Appendzero(agoDay);

   //5.0帮助代码
   console.log("当前时间为:{0}-{1}-{2}".format(currentYear, currentMoon, currentDay));
   console.log("一个月前的时间为{0}-{1}-{2}".format(agoYear, agoMoon, agoDay));

   return { "Year": agoYear, "Moon": agoMoon, "Day": agoDay };
  }

  //处理各位数为零的数字(单位数则加0)
  function Appendzero(obj) {
   if (obj < 10) {
    return "0" + obj;
   } else { 
    return obj;
   }
  }

 </script>
</head>
<body>
 <input type="button" class="tbBtn" id="CbtnNull" style="background-color:#e3e3e3" value="不限"/>
 <input type="button" class="tbBtn" id="CbtnMoon" style="width: 80px; margin-left: 5px; margin-right: 5px;" value="一个月内"/>
 <input type="button" class="tbBtn" id="CbtnWeek" style="width: 80px; margin-left: 5px; margin-right: 5px;" value="一周内"/>
 <input id = "txtCallCycleBegin" type="text"/>
 <input id = "txtCallCyclecurrend" type="text"/>
</body>
</html>

日子逻辑处理

上述正是本文的全部内容,希望能够扶助我们更好的消除javascript日期管理难题。

此类型常用须要为:推算多少个月后(前)的明日的日子。

您恐怕感兴趣的稿子:

  • js data日期开始化的5种方法
  • JS 日期非常大小的简要实例
  • js时间戳格式化成日期格式的二种措施
  • js获取日期:昨日前日和今天、后天
  • js时间戳转为日期格式的艺术
  • Js 获取当前几天期时间及别的操作完毕代码
  • js中的时间转移—纳秒调换来日期时间的示范代码
  • JS 展现当明天期与时间的代码
  • javascript格式化日期时间函数
  • javaScript 总计五个日子的气数相差(示例代码)
  • 详解JavaScript时间拍卖之几个月前或多少个月后的内定日期
  • js日期插件dateHelp获取前一个月、七个月、二〇一六年的日期
  • javascript完美兑现给定日期再次来到后半年日子的不二法门
/**
 *获取几个月前的输入日期
 *{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;
 }

测验效果:

图片 1

图片 2

发没发掘有个难题,通过一日来推,前后都会是29。 5月31号推到5月就是5月29(因为二月就29天)。

这就是说这种逻辑对于有个别必要来讲就得依据实际情状变动一下。比如:小编想缴纳预存一个月的花销。当前本身早就缴纳了2.1-2.29(四月一整月)的资费,预存4个月就应有是(3.1-3.31)。通过此逻辑获得却是3.1-3.29,所以选用请依照真实景况!

上述便是本文的全体内容,希望对我们的学习抱有帮助,也盼望大家多多援救脚本之家。

你或然感兴趣的稿子:

  • js data日期初阶化的5种格局
  • JS 日期极大小的简练实例
  • js时间戳格式化成日期格式的有余方法
  • js获取日期:前些天明天和明日、后天
  • js时间戳转为日期格式的秘籍
  • Js 获取当今天期时间及别的操作达成代码
  • js中的时间改动—阿秒转变来日期时间的演示代码
  • JS 显示当前天子与时间的代码
  • javascript格式化日期时间函数
  • javaScript 计算四个日子的气数相差(示例代码)
  • js日期插件dateHelp获取前段时期、四个月、二零一三年的日子
  • javascript突显下四日、后一个月日期的拍卖方法
  • javascript完美兑现给定日期重临上三个月日子的法门

本文由计算机操作发布,转载请注明来源:上个月日期的处理方法