JS如何得出两个日期之间的周数目?

EdwardLong 2011-07-28 09:45:18
如有 2011-7-1 ,2011-7-28,用什么方法可以得出 这两个日期的周数目
...全文
416 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
燥动的心 2011-07-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 username_fb 的回复:]

var start = new Date(date1.replace("-","/"));
var end = new Date(date2.replace("-","/"));
var diff = parseInt((end - start) / (1000*60*60*24));
先算出两个日期间的时间差,然后除以7天就行
[/Quote]
就是这个了.
USERNAME_FB 2011-07-28
  • 打赏
  • 举报
回复
var start = new Date(date1.replace("-","/"));
var end = new Date(date2.replace("-","/"));
var diff = parseInt((end - start) / (1000*60*60*24));
先算出两个日期间的时间差,然后除以7天就行
EdwardLong 2011-07-28
  • 打赏
  • 举报
回复
^_^ 谢谢啦
这个问题算是明白计算原理了。
如果 再更深入 一点的话,大家又是如何处理呢。
function getYearWeek(StartDate,EndDate){
//字符串格式 MM-dd-yyyy HH:mm:ss
var sd = new Date(Date.parse(StartDate));
var ed = new Date(Date.parse(EndDate));

//1.两个时间的周数
//2.每个周的开始日子 和 结束 日子



}
出来打酱油 2011-07-28
  • 打赏
  • 举报
回复
我的方法同楼上的差不多。给楼主参考。

<script>
var endTimeStr = "7-28-2011";
var endTime = new Date(endTimeStr);
var currentTimeStr = "7-1-2011";
var currentTime = new Date(currentTimeStr);
var dayDiff = Math.ceil((((endTime.getTime() - currentTime.getTime())/3600000))/24/7);
alert(dayDiff);
</script>
了無痕 2011-07-28
  • 打赏
  • 举报
回复


//返回Nowdate所在周的第一天
function showWeekFirstDay(Nowdate)

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

//返回两个日期相差的周数

function WeeksBetw(date1,date2)

{

//这里的date1,date2都是Date对象

var dt1=date1.getTime();

var dt2=date2.getTime();

return parseInt(Math.abs(dt1- dt2)/1000/60/60/24/7);

}

liangtiana 2011-07-28
  • 打赏
  • 举报
回复


function getWeeks(year, month, day){
var day1 = new Date(year, month-1, day);
var day2 = new Date(year, 0, 1);

var firstweek = day2.getDay();//1月1日是星期几
if(firstweek == 0) {
firstweek = 6;
}else {
firstweek = firstweek - 1;
}//转化为0表示星期一,6表示星期日
firstweek = (7 - firstweek) % 7;//计算1月1日离第一周的天数
var day3 = new Date(year, 0, 1+firstweek)
var result = Math.round((day1.getTime() - day3.getTime())/(1000*60*60*24));
result = Math.floor(result / 7)+2;//这个地方应该用floor返回最小次数然后+2
return result;
};


上面能获取当前日期是第几周,你想要的也能得到了
了無痕 2011-07-28
  • 打赏
  • 举报
回复
var start = new Date(date1.replace("-","/"));
var end = new Date(date2.replace("-","/"));
var diff = parseInt((end - start) / (1000*60*60*24));
var count= parseInt((end - start) % (1000*60*60*24));
if(count>0)
{
diff +=1;
}

我想弄的是,尽管本月开始日子,结束日子 是在周末,都当 一周算。==>先取余,如果余数大于0就当作一周
EdwardLong 2011-07-28
  • 打赏
  • 举报
回复
谢谢,但是 得到的结果和日历的有点差异。
如果按照上面的写法,会把 剩余的不足7天的日子舍弃。

我想弄的是,尽管本月开始日子,结束日子 是在周末,都当 一周算。

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧