js中获取指定日期在本年度的周数和yyyy-mm-dd字符串转日期

//求当前天所在周数
//selectDate为当前日期
//startDay为日期偏移量 0:星期天,1:为星期一,2,:星期二,依次类推
function getDayInWeekOfYear(selectDate,startDay){
 //将字符串转化为date
 var date = eval('new Date(' + selectDate.replace(/\d+(?=-[^-]+$)/,function (a) { return parseInt(a, 10) - 1; }).match(/\d+/g) + ')');
 var year =date.getFullYear();
 var start_date=new Date(year,0,1);
  //求该年开始时间,本年一月一号所在的下一个周三
  if(start_date.getDay()>startDay){
    start_date.setDate(start_date.getDate() +((7-start_date.getDay())+startDay));
  }else if(start_date.getDay()<startDay){
   start_date.setDate(start_date.getDate() +(startDay-start_date.getDay()));
  }
 var days=(date.getTime()-start_date.getTime())/(24*60*60*1000);
 //如果days小于0说明该天属于上一年最后一周,计算上一年的最后一周
 if(days<0){
  var last_year_start_date=new Date(year-1,0,1);
  var last_year_end_date=new Date(year-1,11,31);
  //求该年开始时间,本年一月一号所在的下一个周三
   if(last_year_start_date.getDay()>startDay){
     last_year_start_date.setDate(last_year_start_date.getDate() +((7-last_year_start_date.getDay())+startDay));
   }else if(last_year_start_date.getDay()<startDay){
    last_year_start_date.setDate(last_year_start_date.getDate() +(startDay-last_year_start_date.getDay()));
   }
   //求该年结束时间,本年12月31号所在的下一个周三
   if(last_year_end_date.getDay()>=startDay){
    last_year_end_date.setDate(last_year_end_date.getDate() +((7-last_year_end_date.getDay())+startDay));
   }else if(last_year_end_date.getDay()<startDay){
    last_year_end_date.setDate(last_year_end_date.getDate() +(startDay-last_year_end_date.getDay()));
   }
   //该年有多少天
  var days=(last_year_end_date.getTime()-last_year_start_date.getTime())/(24*60*60*1000);
  //该年有多少周
  var weeks=days/7.0;
  weeks=weeks<10?"0"+weeks:weeks;
  return (year-1)+"-"+weeks;
 }
 var weeks =Math.floor(days/7.0+1);
 weeks=weeks<10?"0"+weeks:weeks;
 return year+"-"+weeks;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值