JS获取时间段

1、JS的写法

<script type="text/javascript">
    var now = new Date(); //当前日期
    var nowDayOfWeek = now.getDay(); //今天本周的第几天
    var nowDay = now.getDate(); //当前日
    var nowMonth = now.getMonth(); //当前月
    var nowYear = now.getYear(); //当前年
    nowYear += (nowYear < 2000) ? 1900 : 0; //
    var lastMonthDate = new Date(); //上月日期
    lastMonthDate.setDate(1);
    lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
    var lastYear = lastMonthDate.getYear();
    var lastMonth = lastMonthDate.getMonth();
//格式化日期:yyyy-MM-dd
    function formatDate(date) {
        var myyear = date.getFullYear();
        var mymonth = date.getMonth() + 1;
        var myweekday = date.getDate();
        if (mymonth < 10) {
            mymonth = "0" + mymonth;
        }
        if (myweekday < 10) {
            myweekday = "0" + myweekday;
        }
        return (myyear + "-" + mymonth + "-" + myweekday);
    }
//获得某月的天数
    function getMonthDays(myMonth) {
        var monthStartDate = new Date(nowYear, myMonth, 1);
        var monthEndDate = new Date(nowYear, myMonth + 1, 1);
        var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
        return days;
    }
//获得本季度的开始月份
    function getQuarterStartMonth() {
        var quarterStartMonth = 0;
        if (nowMonth < 3) {
            quarterStartMonth = 0;
        }
        if (2 < nowMonth && nowMonth < 6) {
            quarterStartMonth = 3;
        }
        if (5 < nowMonth && nowMonth < 9) {
            quarterStartMonth = 6;
        }
        if (nowMonth > 8) {
            quarterStartMonth = 9;
        }
        return quarterStartMonth;
    }
//获得本周的开始日期
    function getWeekStartDate() {
        var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
        return formatDate(weekStartDate);
    }
//获得本周的结束日期
    function getWeekEndDate() {
        var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));
        return formatDate(weekEndDate);
    }
//获得上周的开始日期
    function getLastWeekStartDate() {
        var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 7);
        return formatDate(weekStartDate);
    }
//获得上周的结束日期
    function getLastWeekEndDate() {
        var weekEndDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 1);
        return formatDate(weekEndDate);
    }
//获得本月的开始日期
    function getMonthStartDate() {
        var monthStartDate = new Date(nowYear, nowMonth, 1);
        return formatDate(monthStartDate);
    }
//获得本月的结束日期
    function getMonthEndDate() {
        var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
        return formatDate(monthEndDate);
    }
//获得上月开始时间
    function getLastMonthStartDate() {
        var lastMonthStartDate = new Date(nowYear, lastMonth, 1);
        return formatDate(lastMonthStartDate);
    }
//获得上月结束时间
    function getLastMonthEndDate() {
        var lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth));
        return formatDate(lastMonthEndDate);
    }
//获得本季度的开始日期
    function getQuarterStartDate() {
        var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
        return formatDate(quarterStartDate);
    }
//或的本季度的结束日期
    function getQuarterEndDate() {
        var quarterEndMonth = getQuarterStartMonth() + 2;
        var quarterStartDate = new Date(nowYear, quarterEndMonth,
                getMonthDays(quarterEndMonth));
        return formatDate(quarterStartDate);
    }
//获取上一个季度的开始时间
    function getLastQuarterStartDate() {
        var lastQuerterMonth = getQuarterStartMonth();
        if (lastQuerterMonth === 0) {
            var lastQuerterStartDate = new Date(nowYear - 1, 9, 1);
        } else {
            var lastQuerterStartDate = new Date(nowYear, lastQuerterMonth - 3, 1);
        }
        return formatDate(lastQuerterStartDate);
    }
// 获取上一个季度的结束日期
    function getLastEndQuarterEndDate() {
        var lastQuerterMonth = getQuarterStartMonth();
        if (lastQuerterMonth === 0) {
            var lastQuerterEndDate = new Date(nowYear - 1, 11, getMonthDays(lastQuerterMonth));
        } else {
            var lastQuerterEndDate = new Date(nowYear, lastQuerterMonth - 1,
                    getMonthDays(lastQuerterMonth));
        }
        return formatDate(lastQuerterEndDate);
    }

2、下拉框写法(BootStrap的下拉框)

<div class="panel panel-default" id="panel">
            <div class="panel-body">
                <div class="btn-group">
                    <button type="button" id="search" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">上周<span class="caret"></span></button>
                    <ul class="dropdown-menu">
                        <li><a href="#">本周</a></li>
                        <li><a href="#">上周</a></li>
                        <li><a href="#">上月</a></li>
                        <li><a href="#">本月</a></li>
                        <li><a href="#">上季度</a></li>
                        <li><a href="#">本季度</a></li>
                    </ul>
                </div>
                <div class="input-group">
                    <input name="stardata" type="text" class="form-control" placeholder="开始日期" aria-describedby="basic-addon1" readonly>
                    <span>~</span>
                    <input name="enddata" type="text" class="form-control" placeholder="结束日期" aria-describedby="basic-addon1" readonly>
                </div>
                <div id="date">
                    <span class="glyphicon glyphicon-calendar" aria-hidden="true"></span>
                </div>
            </div>
        </div>

3、添加下拉框的a标签的click事件

$("a").click(function () {
        if (this.innerHTML == "上周") {
            $("#searchs").html("上周<i class='icon-angle-down icon-on-right'></i>");
            $("[name = strtime]").val(getLastWeekStartDate());
            $("[name = endtime]").val(getLastWeekEndDate());
        }
        if (this.innerHTML == "本周") {
            $("#searchs").html("本周<i class='icon-angle-down icon-on-right'></i>");
            $("[name = strtime]").val(getWeekStartDate());
            $("[name = endtime]").val(getWeekEndDate());
        }
        if (this.innerHTML == "上月") {
            $("#searchs").html("上月<i class='icon-angle-down icon-on-right'></i>");
            $("[name = strtime]").val(getLastMonthStartDate());
            $("[name = endtime]").val(getLastMonthEndDate());
        }
        if (this.innerHTML == "本月") {
            $("#searchs").html("本月<i class='icon-angle-down icon-on-right'></i>");
            $("[name = strtime]").val(getMonthStartDate());
            $("[name = endtime]").val(getMonthEndDate());
        }
        if (this.innerHTML == "本季度") {
            $("#searchs").html("本季度<i class='icon-angle-down icon-on-right'></i>");
            $("[name = strtime]").val(getQuarterStartDate());
            $("[name = endtime]").val(getQuarterEndDate());
        }
        if (this.innerHTML == "上季度") {
            $("#searchs").html("上季度<i class='icon-angle-down icon-on-right'></i>");
            $("[name = strtime]").val(getLastQuarterStartDate());
            $("[name = endtime]").val(getLastEndQuarterEndDate());
        }
    })
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值