项目中需要做个打卡的模块。里面有个模块需要返回当前这个星期从星期日到星期六的日期,如下图:
我是通过 moment.js 的 moment().day() 实现这个效果的,它的说明如下图:
关于这个插件,更多其它方法可以看它的官网。
解决方案的js核心代码如下:
function getWeekDay(){ var nowD = Number(moment().day()); //今天星期几 var startD = Number(moment().day(0).format('D')); //本周第一天的日期 var endD = Number(moment().day(0).add(6, 'days').format('D')); //本周最后一天的日期 var dayArray = []; for(var d=startD;d<=endD;d++){ dayArray.push(d);//将当前这个星期的日期存入数组 } //循环把日期显示 $(".js_date_d").each(function () { var thisIndex = $(this).index() $(this).find(".js_day").text(dayArray[thisIndex]); if(thisIndex<nowD){ $(this).addClass("past") //过去添加样式 past }else if(thisIndex===nowD){ $(this).addClass("current") //今天添加样式 current }else{ $(this).addClass("future") //未来添加样式 future } }) }
html代码截图如下: