獲取兩個日期相隔週數

格式如下

在這裏插入圖片描述

配置代碼即可

注意修改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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章