zoukankan      html  css  js  c++  java
  • 周数的处理

    一、时间转周数

    这个原理比较简单,找到当前周与1月1号相同星期数的一天,然后相减,除以一周的毫秒数,再加1就得到了,代码如下:

    // 时间转周数:参数(时间戳)
    function time2week(time){
    
        var current=new Date(time);
    
        var current_year=current.getFullYear();
        var current_month=current.getMonth();
        var current_date=current.getDate();
        var current_week=current.getDay();
    
        var thisYear=new Date(current_year,0,1);       // 这一年第一天
        var thisYear_week=thisYear.getDay();
    
        var thisWeek=new Date(current_year,current_month,thisYear_week - current_week + current_date);  // 与这一年第一天同样的星期几
    
        var cut=thisWeek - thisYear;
    
        var week=cut / (1000 * 60 * 60 * 24 * 7) + 1;
    
        return week;
    }
    var timeline=1410249135;
    alert(time2week(timeline * 1000));    // 37

    二、周数转时间

    这个比上面的稍微复杂点,先求这一年第一天是周几,然后确定这一年的第二周的周一是哪一天(因为第一周的周一可能在上一年),再根据周数判断这周的周一和周末是哪一天,代码如下:

    // 周数转时间:参数(哪年哪周,如201437)
    function week2date(str){
    
        str=str.toString();
    
        var res={};
    
        var year=str.substring(0,4);
        var week=str.substring(4);
    
        var thisYear=new Date(year,0,1);
        var thisYear_week=thisYear.getDay();
    
        // 获得第week周的周一
        thisYear.setDate(parseInt("2876543".charAt(thisYear_week))+(week-2)*7);
        
        res.start={
            year: thisYear.getFullYear(),
            month: thisYear.getMonth() + 1,
            data: thisYear.getDate()
        };
    
        // 获得第week周的周日
        thisYear.setDate(thisYear.getDate()+6);
        
        res.end={
            year: thisYear.getFullYear(),
            month: thisYear.getMonth() + 1,
            data: thisYear.getDate()
        };
    
        return res;
    }
    console.log(week2date(201437));
    // Object {start: Object, end: Object}
    //     start: Object
    //         data: 8
    //         month: 9
    //         year: 2014
    //     end: Object
    //         data: 14
    //         month: 9
    //         year: 2014
  • 相关阅读:
    clip-path
    box-reflect
    循环内click赋值跳转
    github pages 不能识别下划线开头的文件
    Telerik Reporting
    VS2015项目发布失败且没有错误提示
    kendo grid 过滤器
    kendo 月份选择
    kendo grid过滤
    odata连接现有数据库
  • 原文地址:https://www.cnblogs.com/ccforeverd/p/3963162.html
Copyright © 2011-2022 走看看