jQuery:一年中的一周剧本表演

Ric*_*Zea 2 jquery week-number

前一段时间我需要一个脚本来每周更新一些内容,我的问题在这个论坛得到了解答.

-

现在,我不是像你这样的jQuery专业人员:),但我所遇到的"问题"是今天(这篇文章的那一刻)它的第52周,但脚本没有工作,它没有显示第52周的内容,所以我将我的HTML更改为第53周,并且它有效.

"问题"是没有第53周,所以我担心我将不得不改变我的HTML以继续计算#54,#56,#57等等,这些周没有存在.

这是HTML的摘录(结构重复几周,内容更改当然):

<div class="quotes-container quote-53">
 <div class="quote">Quote here...</div>
 <div class="author">&mdash; Author </div>
</div>
Run Code Online (Sandbox Code Playgroud)

脚本:

<script type="text/javascript">
Date.prototype.getWeek = function() {
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
}

jQuery(function(){  
 var today = new Date();
 var weekno = today.getWeek();
 jQuery('#quotes-wrapper').load('/common/testimonials.html div.quote-'+weekno);
});
</script>
Run Code Online (Sandbox Code Playgroud)

知道发生了什么事吗?

非常感谢您对此提供的任何帮助.

use*_*716 7

编辑:您正在使用的脚本认为"周"是星期日 - 星期六.由于一年并不总是在星期日开始,因此它将第一个部分周视为第1周.

如果您只想在今年的第一年开始说7个句点,请使用下面的脚本.如果你想要它基于星期日,那么你正在使用的脚本是正确的.


有一个星期#53.这不是整整一周.

但是我们在一周之内52.我猜测当前的脚本没有说明闰年.

相反,你可以计算今年的这一天,并将其除以7.

示例: http ://jsfiddle.net/etTS2/2/

<script type="text/javascript">

    Date.prototype.getWeek = function() {
      var onejan = new Date(this.getFullYear(),0,1);
      var today = new Date(this.getFullYear(),this.getMonth(),this.getDate());
      var dayOfYear = ((today - onejan +1)/86400000);
      return Math.ceil(dayOfYear/7)
    };


    jQuery(function(){  
     var today = new Date();
     var weekno = today.getWeek();
     jQuery('#quotes-wrapper').load('/common/testimonials.html div.quote-'+weekno);
    });

</script>
Run Code Online (Sandbox Code Playgroud)

您仍然可以获得53一年中最后一天(或闰年的最后两天)的结果.

编辑:修正了偏移的1dayOfYear.