获取两个日期相隔周数

格式如下

在这里插入图片描述

配置代码即可

注意修改Jquery 的引用路径

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        // 页面加载函数
        $(function(){
            $("#getWeekTotal").click(function(){
                // 获取用户输入的时间信息
                var startDate = getDate($("#startDate").val());
                var endDate = getDate($("#endDate").val());
                // alert(startDate);
                // 如果用户所传日期格式有误, 退出方法
                if(!(startDate || endDate)){
                    return;
                }
                // 两个日期相减 获取毫秒数
                // alert(endDate - startDate);

                var startWeek = getWeekOfYear(startDate);
                var endWeek = getWeekOfYear(endDate);
                $("#startDate").next().html("今年第"+startWeek+"周".fontcolor("green"));
                $("#endDate").next().html("今年第"+endWeek+"周".fontcolor("green"));
                $(this).next().html("从开始周数计算的第"+(endWeek - startWeek + 1)+"周");
                // 获取当前时间的周数
            });

            $("#getDateTotal").click(function(){
                // 获取用户输入的时间信息
                var startDate = getDate($("#startDate").val());
                var endDate = getDate($("#endDate").val());
                // alert(startDate);
                // 如果用户所传日期格式有误, 退出方法
                if(!(startDate || endDate)){
                    return;
                }
                // 两个日期相减 获取毫秒数
                // alert(endDate - startDate);

                var startDay = getDayOfYear(startDate);
                var endDay = getDayOfYear(endDate);

                alert("从开始天数计算的第"+(endDay - startDay)+"天");
                // 获取当前时间的周数
            });


        });
        // 计算当前日期, 是当前年份的第几周
        // 老外从 星期天算第一周, 我偏偏不喜欢, 就从周一开始算
        function getWeekOfYear(date){
            var startDate = new Date();
            startDate.setTime(date.getTime());
            // 计算当前日期所在年的第一天
            startDate.setMonth(0);
            startDate.setDate(1);

            // 获取第一天的 星期数
            var dayOfWeek = startDate.getDay();
            // 2019 年 一月一号 为星期二 , 所以第一个周 为 6天 (1-6 号为 周二到 周日)
            // 获取当年的第一个周一的实际日期,
            // 一号为 周二
            // 那么7号为 下个周一 号数为 (8-周几)
            // 设置第一个周一的日期为
            startDate.setDate(8-dayOfWeek);

            // 获取设置第一个周一毫秒数
            var startTime = startDate.getTime();

            // 获取 用户所传入时间的毫秒数
            var dateTime = date.getTime();

            // 实际的周数为 毫秒数相减 转换为周
            var week = Math.ceil((dateTime - startTime)*1.0/1000/60/60/24/7 ) ;
            return week + 1;
        }
        // 计算今天为近一年中的第几天
        function getDayOfYear(date){
            var startDate = new Date();
            startDate.setTime(date.getTime());
            // 计算当前日期所在年的第一天
            startDate.setMonth(0);
            startDate.setDate(1);
            // 获取元旦毫秒数
            var startTime = startDate.getTime();
            // 获取 用户所传入时间的毫秒数
            var dateTime = date.getTime();
            // 实际的周数为 毫秒数相减 转换为周
            var day = Math.ceil((dateTime - startTime)*1.0/1000/60/60/24 ) ;
            return day;
        }


        // 获取用户输入信息, 并且转换为年月日 , 包装成日期类型返回
        function getDate(dateStr){
            // 判断日期是否采用的是 要求格式
            var indexFirst = dateStr.indexOf("-");
            var indexLast = dateStr.lastIndexOf("-");
            if(indexFirst == -1 || indexLast == -1 || indexFirst == indexLast){
                alert("日期格式不正确! 请重新测试 ");
                return;
            }
            var year = dateStr.substring(0,indexFirst);
            var month = dateStr.substring(indexFirst+1,indexLast);
            var day = dateStr.substring(indexLast+1);

            var date = new Date();
            date.setFullYear(year,month - 1,day);
            return date;
        }



    </script>
</head>
<body>
    <center>
        输入两个日期, 判断两个日期之间相隔的天数 和 周数
        <br>

        <hr>
        日期格式 :
            2008-08-08
        <hr>
        起始日期:
        <input type="text" id="startDate" value="2019-06-07"/><span></span>

        <br><br>
        
        结束日期 :
        <input type="text" id="endDate" value="2019-11-09"><span></span>

        <br><br>
        <button id="getDateTotal">相隔天数</button>
        &nbsp;
        &nbsp;
        &nbsp;
        &nbsp;
        &nbsp;
        <button id="getWeekTotal">总周数</button><span></span>
    </center>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章