<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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 关于一周前一个月前的处理方法的更多相关文章

  1. [转]Java中一周前一个月前时间计算方法

    Java中一周前一个月前时间计算方法 在java语言中,用如下方法获取系统时间: Date date = new Date(); String year=new SimpleDateFormat(&q ...

  2. [python实用代码片段]python获取当前时间的前一天,前一周,前一个月

    python获取当前时间的前一天,前一周,前一个月. 实用python的datetime.timedelta方法,避免了有的月份是30和31等不同的情况. 获取前一个月的时间,方法实现:首先datet ...

  3. JavaScript时间处理之几个月前或几个月后的指定日期

    在平常项目开发过程中,经常会遇到需要在JavaScript中处理时间的情况,无非两种(1,逻辑处理  2,格式转换处理).当然要说相关技术博,园子里闭着眼睛都能抓一把,但是我要做的是:既然有幸被我碰到 ...

  4. Oracle获取一周前,一个月前,一年前, 本周,本月,当年的日期

    1.获取当前时间一周前的日期 ' day from dual 类似的 --当前时间减去7分钟的时间 ' MINUTE from dual --当前时间减去7小时的时间 ' hour from dual ...

  5. Javascript实现时间转换为多少天前

    //实现时间转换,这篇文章发布时间为 2016/1/20 19:59:30 文章发表时间戳为:1453291170000于:11月前function getDateDiff(dateTimeStamp ...

  6. C#根据当前时间获取周,月,季度,年度等时间段的起止时间

    最近有个统计分布的需求,需要按统计本周,上周,本月,上月,本季度,上季度,本年度,上年度等时间统计分布趋势,所以这里就涉及到计算周,月,季度,年度等的起止时间了,下面总结一下C#中关于根据当前时间获取 ...

  7. Javascript获取某个月的天数-简单方法 .(转别人的)

    Javascript里面的new  Date("xxxx/xx/xx")这个日期的构造方法有一个妙处,当你传入的是"xxxx/xx/0"(0号)的话,得到的日期 ...

  8. 用js获取周、月第一天和最后一天(转载)

    var getCurrentWeek = function (day) { var days = ["周日", "周一", "周二", &q ...

  9. php获取前一天,前一个月,前一年的时间

    获取前一天的时间: $mytime= date("Y-m-d H:i:s", strtotime("-1 day")); 获取三天前的时间: $mytime= ...

随机推荐

  1. angular2 学习笔记 ( Http 请求)

    refer : https://angular.cn/docs/ts/latest/guide/server-communication.html https://xgrommx.github.io/ ...

  2. [Android] 获取音频输出getOutput

    每创建一个AudioTrack,代表需要新增一个输出实例,即需要根据音频流的的stream type,音频流的音轨数量,采样率,位宽等数据来重新构建buffer,而且输出的设备也可能会有变化,由于An ...

  3. VS中的预先生成事件和后期生成事件

    原文:VS中的预先生成事件和后期生成事件 在C#开发中,有时候需要在程序编译之前或之后做一些操作. 要达到这个目的,可以使用Visual Studio中的预先生成事件和后期生成事件. 下图是一个简单例 ...

  4. 【转】JAVA字符串格式化-String.format()的使用

    原文网址:http://blog.csdn.net/lonely_fireworks/article/details/7962171 常规类型的格式化 String类的format()方法用于创建格式 ...

  5. 在Excel中将数字设置成文本格式的技巧

    在Excel中将数字设置成文本格式的技巧 一个简单的方法,利用[数据]菜单的[分列]功能来将数字设置为文本格式.具体操作步骤为: 1.选中所有需要处理的数字单元格. 2.选择[数据]菜单[分列]功能. ...

  6. 解决魅族手机连接win7连不上

    折腾了好半天,win7就是连接不了魅族手机....我搞andorid开发的 连接不上 调个毛程序啊. 最后解决了 新建此文件即可.文件内容更为  0x2a45关闭即可. 来自为知笔记(Wiz)

  7. SherlockactionBar中手动调用onCreateOptionsMenu的办法

    我们有时候要做做事的时候,要提前拿到 ActionBar中的menuItem,但是,会出现为空的情况.怎么办呢? 比如这里: @Override public boolean onCreateOpti ...

  8. citrix+netscaler配置第一次培训

    citrix_netscaler配置第一次培训.pptx http://files.cnblogs.com/files/niaowo/citrix_netscaler%E9%85%8D%E7%BD%A ...

  9. 第一章 工欲善其事 必先利其器—Android SDK工具(3)

    1.3没有真机一样开发--Android模拟器 有些时候,我们手头上可能并没有符合要求的Android设备.那么这时候我们是不是对调试或者开发就一筹莫展了呢?当然不是.由于我们有Android模拟器. ...

  10. Java内部类实现伪方法级多线程

    最近碰到一个问题,就是用户在填写相关信息提交后,后台需要将一些文件同步到另外一台服务器,而这个时候,由于用的是spring的框架,导致前端页面需要等待文件同步完成,才能弹出提示信息.相信大家在很多时候 ...