前一段时间我需要一个脚本来每周更新一些内容,我的问题已在this forum中得到解答。
-
现在,我不是像你这样的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">— 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>
知道发生了什么事吗?
非常感谢你们提供任何帮助。
答案 0 :(得分: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>
您仍会在一年的最后一天(或闰年的最后两天)获得53
的结果。
编辑:修正了1
上dayOfYear
的偏移量。