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

編集:使用しているスクリプトは、「週」を日曜日から土曜日と見なします。1 年は常に日曜日に始まるとは限らないため、最初の部分的な週が第 1 週であると見なされます。

年の最初から 7 回の発言期間が必要な場合は、次のスクリプトを使用します。日曜日を基準にしたい場合は、使用しているスクリプトが正しいでしょう。


1週間あります#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年の最後の日 (またはうるう年の最後の 2 日間) の結果は引き続き得られます。

編集:のオフセットを修正し1ましたdayOfYear

于 2010-12-27T15:42:01.560 に答える