快速选择今天、昨天、本周、上周、本月及上月的js获取方法

今天用到快速选择今天、昨天、本周、上周、本月及上月的js获取方法,参照老前辈的代码自己整理后最终的效果:在这里插入图片描述
代码块在这里:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="jquery.min.js"></script>
</head>

<body>
  <input type="text" size="15" name="beginTime" value="" onclick="WdatePicker()" id="DataStar"><input type="text" size="15" name="endTime" value="" onclick="WdatePicker()" id="DataEnd">

  <select id="checkTime" style="width: 70px;">
    <option value="0">快速选择</option>
    <option value="1">今天</option>
    <option value="2">昨天</option>
    <option value="3">本周</option>
    <option value="4">上周</option>
    <option value="5">本月</option>
    <option value="6">上月</option>

  </select>

  <script>
    //快速选择触发事件
    $("#checkTime").change(function () {
      var checkId = $("#checkTime").val();
      switch (checkId) {
        case '1':
          lotteryDataList.getTodayDate();
          break;
        case '2':
          lotteryDataList.getYesterdayDate();
          break;
        case '3':
          lotteryDataList.getCurrentWeek();
          break;
        case '4':
          lotteryDataList.getLastWeek();
          break;
        case '5':
          lotteryDataList.getCurrentMonth();
          break;
        case '6':
          lotteryDataList.getLastMonth();
          break;
      }
    });
    //输出时间样式为 yyyy-mm-dd hh:mm:ss,不满 2 位则前面添 0;
    function add0(m) {
      return m < 10 ? '0' + m : m
    };
    //获取某月天数 
    function getMonthDays(year, month) {
      var new_year = year; //取当前的年份 var
      nextMonth = month++; if (month > 12) {
        nextMonth -= 12; //月份减
        new_year++; //年份增
      }
      var nextMonthFirstDay = new Date(new_year, nextMonth, 1);
      //下个月第一天
      var oneDay = 1000 * 60 * 60 * 24;
      var dateString = new Date(nextMonthFirstDay - oneDay);
      var dateTime = dateString.getDate();
      return dateTime;
    };
    function getPriorMonthFirstDay(year, month) {
      //年份为0代表,是本年的第一月,所以不能减
      if (month == 0) {
        month = 11; //月份为上年的最后月份
        year--; //年份减1
        return new Date(year, month, 1);
      }
      //否则,只减去月份
      month--;
      return new Date(year, month, 1);
    };



    var lotteryDataList = new Object({
      //获取当天开始时间结束时间
      getTodayDate: function () {
        console.log(0);
        var today = [];
        var todayDate = new Date();
        var y = todayDate.getFullYear();
        var m = todayDate.getMonth() + 1;
        var d = todayDate.getDate();
        var s = y + '-' + add0(m) + '-' + add0(d) + ' 00:00:00';//今日开始
        var e = y + '-' + add0(m) + '-' + add0(d) + ' 23:59:59';//今日结束
        $('#DataStar').val(s);
        $('#DataEnd').val(e);
      },
      //获取昨天时间
      getYesterdayDate: function () {
        var dateTime = [];
        var today = new Date();
        var yesterday = new Date(today.setTime(today.getTime() - 24 * 60 * 60 * 1000));
        var y = yesterday.getFullYear();
        var m = yesterday.getMonth() + 1;
        var d = yesterday.getDate();
        var s = y + '-' + add0(m) + '-' + add0(d) + ' 00:00:00';//开始
        var e = y + '-' + add0(m) + '-' + add0(d) + ' 23:59:59';//结束
        $('#DataStar').val(s);
        $('#DataEnd').val(e);
      },
      //获取本周开始时间结束时间
      getCurrentWeek: function () {
        var startStop = new Array();
        //获取当前时间
        var currentDate = new Date();
        //返回date是一周中的某一天
        var week = currentDate.getDay();
        //返回date是一个月中的某一天
        var month = currentDate.getDate();
        //一天的毫秒数
        var millisecond = 1000 * 60 * 60 * 24;
        //减去的天数
        var minusDay = week != 0 ? week - 1 : 6;
        //alert(minusDay);
        //本周 周一
        var monday = new Date(currentDate.getTime() - (minusDay * millisecond));
        //本周 周日
        var sunday = new Date(monday.getTime() + (6 * millisecond));
        var sy = monday.getFullYear();
        var sm = monday.getMonth() + 1;
        var sd = monday.getDate();
        var ey = sunday.getFullYear();
        var em = sunday.getMonth() + 1;
        var ed = sunday.getDate();
        var s = sy + '-' + add0(sm) + '-' + add0(sd) + ' 00:00:00';//开始
        var e = ey + '-' + add0(em) + '-' + add0(ed) + ' 23:59:59';//结束
        $('#DataStar').val(s);
        $('#DataEnd').val(e);
      },
      //获取上周时间
      getLastWeek: function () {
        //起止日期数组
        var startStop = new Array();
        //获取当前时间
        var currentDate = new Date();
        //返回date是一周中的某一天
        var week = currentDate.getDay();
        //返回date是一个月中的某一天
        var month = currentDate.getDate();
        //一天的毫秒数
        var millisecond = 1000 * 60 * 60 * 24;
        //减去的天数
        var minusDay = week != 0 ? week - 1 : 6;
        //获得当前周的第一天
        var currentWeekDayOne = new Date(currentDate.getTime() - (millisecond * minusDay));
        //上周最后一天即本周开始的前一天
        var priorWeekLastDay = new Date(currentWeekDayOne.getTime() - millisecond);
        //上周的第一天
        var priorWeekFirstDay = new Date(priorWeekLastDay.getTime() - (millisecond * 6));
        var sy = priorWeekFirstDay.getFullYear();
        var sm = priorWeekFirstDay.getMonth() + 1;
        var sd = priorWeekFirstDay.getDate();
        var ey = priorWeekLastDay.getFullYear();
        var em = priorWeekLastDay.getMonth() + 1;
        var ed = priorWeekLastDay.getDate();
        var s = sy + '-' + add0(sm) + '-' + add0(sd) + ' 00:00:00';//开始
        var e = ey + '-' + add0(em) + '-' + add0(ed) + ' 23:59:59';//结束

        $('#DataStar').val(s);
        $('#DataEnd').val(e);
      },

      //获取本月时间
      getCurrentMonth: function () {
        //起止日期数组
        var startStop = new Array();
        //获取当前时间
        var currentDate = new Date();
        //获得当前月份0-11
        var currentMonth = currentDate.getMonth();
        //获得当前年份4位年
        var currentYear = currentDate.getFullYear();
        //求出本月第一天
        var firstDay = new Date(currentYear, currentMonth, 1);

        //当为12月的时候年份需要加1
        //月份需要更新为0 也就是下一年的第一个月
        if (currentMonth == 11) {
          currentYear++;
          currentMonth = 0; //就为
        } else {
          //否则只是月份增加,以便求的下一月的第一天
          currentMonth++;
        }
        //一天的毫秒数
        var millisecond = 1000 * 60 * 60 * 24;
        //下月的第一天
        var nextMonthDayOne = new Date(currentYear, currentMonth, 1);
        //求出上月的最后一天
        var lastDay = new Date(nextMonthDayOne.getTime() - millisecond);
        var sy = firstDay.getFullYear();
        var sm = firstDay.getMonth() + 1;
        var sd = firstDay.getDate();
        var ey = lastDay.getFullYear();
        var em = lastDay.getMonth() + 1;
        var ed = lastDay.getDate();
        var s = sy + '-' + add0(sm) + '-' + add0(sd) + ' 00:00:00';//开始
        var e = ey + '-' + add0(em) + '-' + add0(ed) + ' 23:59:59';//结束

        $('#DataStar').val(s);
        $('#DataEnd').val(e);
      },
      //获取上月时间
      getLastMonth: function () {
        var startStop = new Array();
        //获取当前时间
        var currentDate = new Date();
        //获得当前月份0-11
        var currentMonth = currentDate.getMonth();
        //获得当前年份4位年
        var currentYear = currentDate.getFullYear();
        //获得上一个月的第一天
        var priorMonthFirstDay = getPriorMonthFirstDay(currentYear, currentMonth);
        //获得上一月的最后一天
        var priorMonthLastDay = new Date(priorMonthFirstDay.getFullYear(), priorMonthFirstDay.getMonth(),
          getMonthDays(priorMonthFirstDay.getFullYear(), priorMonthFirstDay.getMonth()));
        var sy = priorMonthFirstDay.getFullYear();
        var sm = priorMonthFirstDay.getMonth() + 1;
        var sd = priorMonthFirstDay.getDate();
        var ey = priorMonthLastDay.getFullYear();
        var em = priorMonthLastDay.getMonth() + 1;
        var ed = priorMonthLastDay.getDate();
        var s = sy + '-' + add0(sm) + '-' + add0(sd) + ' 00:00:00';//开始
        var e = ey + '-' + add0(em) + '-' + add0(ed) + ' 00:00:00';//结束
        $('#DataStar').val(s);
        $('#DataEnd').val(e);
      },
    })

  </script>
</body>

</html>

参考本文链接:https://blog.youkuaiyun.com/dwz100916007/article/details/98957787

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值