2

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

--

现在,我不是像你这样的 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>

脚本:

<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>

知道发生了什么吗?

非常感谢您对此的任何帮助。

4

1 回答 1

7

编辑:您使用的脚本将“周”视为星期日 - 星期六。由于一年并不总是从星期日开始,因此它将第一周视为第一周。

如果您只想要自年初以来的 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>

您仍然会53在一年的最后一天(或闰年的最后两天)得到结果。

编辑:修复1dayOfYear.

于 2010-12-27T15:42:01.560 回答