zoukankan      html  css  js  c++  java
  • js关于日期的操作

    <SCRIPT LANGUAGE="JavaScript" type="text/javascript">  

    //获取本周是一年中的第几周  

    function getWeekOfYear(a, b, c) {   

        var d1 = new Date(a, b-1, c);  

        var d2 = new Date(a, 0, 1);  

        var d = Math.round((d1 - d2) / 86400000);   

        return Math.ceil((d + ((d2.getDay() + 1) - 1)) / 7);   

    };  

    //本周第一天     

    function showWeekFirstDay(a, b, c) {     

        var Nowdate=new Date(a, b-1, c);  

        var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);     

        return getDateString(WeekFirstDay);     

    }     

    //本周最后一天     

    function showWeekLastDay(a, b, c) {     

        var Nowdate=new Date(a, b-1, c);  

        var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);     

        var WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000);     

        return getDateString(WeekLastDay);      

    }   

    //日期转换成字符串  

    function getDateString(_date) {  

        var month = _date.getMonth();  

        var result = _date.getFullYear() +'-'+ (parseInt(month)+1)+'-'+_date.getDate();  

        return result;  

    }  

    </SCRIPT>  

     

     

    <script language=javascript>    

    //一天含 86,400,000 毫秒(24* 60 * 60*1000)    

      

    //获取本周是一年中的第几周  

    /*  

    function getWeekOfYear(date) {   

        var d1 = date;  

        var d2 = new Date(date.getFullYear(), 0, 1);  

        var d = Math.round((d1 - d2) / 86400000);   

        return Math.ceil((d + ((d2.getDay() + 1) - 1)) / 7);   

    };  

    */  

    //本周第一天    

    function showWeekFirstDay()    

    {    

        var Nowdate=new Date();    

        var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);    

        return WeekFirstDay;    

    }    

    //本周最后一天    

    function showWeekLastDay()    

    {    

        var Nowdate=new Date();    

        var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);    

        var WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000);    

        return WeekLastDay;    

    }    

          

    //上周第一天    

    function showPreviousFirstWeekDay(firstDay)    

    {    

        var WeekFirstDay=(firstDay==null?showWeekFirstDay():firstDay)  

        return new Date(WeekFirstDay-86400000*7)    

    }    

    //上周最后一天    

    function showPreviousLastWeekDay(firstDay)    

    {    

        var WeekFirstDay=(firstDay==null?showWeekFirstDay():firstDay)    

        return new Date(WeekFirstDay-86400000)    

    }    

      

    //下周第一天    

    function showNextFirstWeekDay(lastDay)    

    {    

        var MonthFirstDay=(lastDay==null?showWeekLastDay():lastDay)  

        return new Date((MonthFirstDay/1000+86400)*1000)    

    }    

    //下周最后一天    

    function showNextLastWeekDay(lastDay)    

    {    

        var MonthFirstDay=(lastDay==null?showWeekLastDay():lastDay)  

        return new Date((MonthFirstDay/1000+7*86400)*1000)    

    }    

      

    // 计算当前日期在本年度的周数    

    Date.prototype.getWeekOfYear = function(weekStart) { // weekStart:每周开始于周几:周日:0,周一:1,周二:2 ...,默认为周日    

        weekStart = (weekStart || 0) - 0;    

        if(isNaN(weekStart) || weekStart > 6)    

            weekStart = 0;  

        var year = this.getFullYear();    

        var firstDay = new Date(year, 0, 1);    

        var firstWeekDays = 7 - firstDay.getDay() + weekStart;    

        var dayOfYear = (((new Date(year, this.getMonth(), this.getDate())) - firstDay) / 86400000) + 1;    

        return Math.ceil((dayOfYear - firstWeekDays) / 7) + 1;    

    }  

        

    Date.prototype.format=function(fmt) {       

        var o = {       

        "M+" : this.getMonth()+1, //月份       

        "d+" : this.getDate(), //日       

        "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时       

        "H+" : this.getHours(), //小时       

        "m+" : this.getMinutes(), //分       

        "s+" : this.getSeconds(), //秒       

        "q+" : Math.floor((this.getMonth()+3)/3), //季度       

        "S" : this.getMilliseconds() //毫秒       

        };       

        var week = {       

        "0" : "u65e5",       

        "1" : "u4e00",       

        "2" : "u4e8c",       

        "3" : "u4e09",       

        "4" : "u56db",       

        "5" : "u4e94",       

        "6" : "u516d"      

        };       

        if(/(y+)/.test(fmt)){       

            fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));       

        }       

        if(/(E+)/.test(fmt)){       

            fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "u661fu671f" : "u5468") : "")+week[this.getDay()+""]);       

        }       

        for(var k in o){       

            if(new RegExp("("+ k +")").test(fmt)){       

                fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));       

            }       

        }       

        return fmt;       

    }  

       

    function getWeeks(num, obj){  

        var firstDay = showWeekFirstDay();  

        var lastDay = showWeekLastDay();  

        var divContent = "";  

        for(var i=0;i<num;i++){  

            lastDay = showPreviousLastWeekDay(firstDay);  

            firstDay = showPreviousFirstWeekDay(firstDay);  

            var year = lastDay.getFullYear();  

            var week = lastDay.getWeekOfYear(1);  

            divContent = "<option year='"+year+"' week='"+week+"'>"+year+"第" +week+ "周("+firstDay.format("yyyy-MM-dd")+"至"+lastDay.format("yyyy-MM-dd")+")</option>"+divContent;  

        }  

        firstDay = showWeekFirstDay();  

        lastDay = showWeekLastDay();  

        for(var i=0;i<num;i++){  

            var year = lastDay.getFullYear();  

            var week = lastDay.getWeekOfYear(1);  

            if(i!=0) {  

                divContent = divContent +"<option year='"+year+"' week='"+week+"'>"+ year+"第"+ week +"周("+firstDay.format("yyyy-MM-dd")+"至"+lastDay.format("yyyy-MM-dd")+")</option>";  

            } else {  

                divContent = divContent +"<option year='"+year+"' week='"+week+"'>"+ year+"第"+ week +"周("+firstDay.format("yyyy-MM-dd")+"至"+lastDay.format("yyyy-MM-dd")+")</option>";  

            }  

            firstDay = showNextFirstWeekDay(lastDay);  

            lastDay = showNextLastWeekDay(lastDay);  

        }  

        divContent = "<select id='yearWeekSelect' onchange='changeYearWeek(this);'>"+divContent+"</select>"  

          

        obj.html(divContent);  

    }  

    // 修改year、month字段值  

    function changeYearWeek(obj){  

        var $option = $(obj).children("option[selected]");  

        var year = $option.attr("year");  

        var week = $option.attr("week");  

        $("#_year").val(year);  

        $("#_week").val(week);  

    }  

      

    function changeSelected() {  

        var _year = $("#_year").val();  

        var _week = $("#_week").val();  

        $("#yearWeekSelect").children("option").each(function(){  

            if($(this).attr("year") == _year && $(this).attr("week") == _week) {  

                $(this).attr("selected", true);  

            }  

        })  

    }  

    //alert("ss:"+(new Date(2012,0,1).getWeekOfYear(1)));  

    //new Date(2012,0,1).getWeekOfYear(1)  

    </script>   

  • 相关阅读:
    SpringBoot接口文件findBy方法写错导致抛出IllegalArgumentException
    用tomcat启动spring-boot
    Idea使用tool window中的persistence功能一键生成数据库实体
    Idea 启动 tomcat 报错
    详细梳理ajax跨域4种解决方案
    他们权利意识强,但是也会为生活牺牲很多
    每月碎碎念 | 2019.09
    说好不哭 我不会走
    css实现内容不相同的左右两个div等高
    简单了解css3轮廓outline
  • 原文地址:https://www.cnblogs.com/wojiaoxusanri/p/5803346.html
Copyright © 2011-2022 走看看