首页 > 代码库 > 周数的处理
周数的处理
一、时间转周数
这个原理比较简单,找到当前周与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
周数的处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。