希望你能解决我过去几周一直遇到的这个问题。
简而言之,我的客户项目是每周计划者,在每周和每一天都会显示不同的内容(请参阅example)。所以基本上,我的客户在5周和5天内组织了25种不同类型的内容。第5周结束后,第1周再次开始。没问题,因为我使用了标签和嵌套标签。
根据当前的日期和星期,我需要工作日选项卡和日期标签激活页面加载。因此,如果今天是1月1日,并且它在星期一,那么第1周和星期一标签页应该在页面加载时处于活动状态。
我检测当天没有问题,但我需要以某种方式检测当前是星期五(或星期六),然后将活动类从第1周切换到第2周。一周五或周六从第2周结束,将活动类切换到第3周,依此类推。此页面加载。
var date = new Date(),
today = date.getDay(),
/// 0 = Sunday // 1 = Monday // 2 = Tuesday // 3 = Wednesday // 4 = Thursday // 5 = Friday // 6 = Saturday
day_Array = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'],
this_day = day_Array[today - 1];
// If it's weekday, detect current week day.
if (today == 0 ? 6 : (today - 1)) {
$(".week [class*="+this_day+"]").addClass('active');
}
// If it's Weekend (starting by Saturday), put active class to Monday.
if (today == 0 | today == 6){
$(".week-days [class*="+this_day+"]").removeClass('active');
$(".week-days .monday").addClass('active');
}
body {
text-align:center;
}
ul li {
display:inline-block;
padding:10px;
}.week-number {
background:whitesmoke;
}
.active {
background:red;
display:inline-block;
}
<ul class="week-number">
<li class="one">Week One</li>
<li class="two">Week Two</li>
<li class="three">Week Three</li>
<li class="four">Week Four</li>
<li class="five">Week Five</li>
</ul>
<ul class="week-days">
<li class="monday">Mon</li>
<li class="tuesday">Tue</li>
<li class="wednesday">Wed</li>
<li class="thursday">Thu</li>
<li class="friday">Fri</li>
</ul>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
为什么我没有使用Javascript来检测本周?因为how JS counts the weeks of each month(第1周总是从月初开始,无论一周中的哪一天)。这就是我想要每周计算的方式:example
有关如何处理此事的任何想法?
我做了一个基本原则的小提琴:jsFiddle