将周开始更改为周一

时间:2016-01-12 01:33:46

标签: javascript reactjs momentjs

我正在尝试关注this tutorial

它构建了一个日历,其中星期日是一周的第一天。 老实说,我并不完全了解它是如何运作的。我无法理解的是如何让它显示一个日历,从星期一开始,而不是星期日。 我认为问题出在这一行:

date = this.state.month.clone().startOf("month").add("w" - 1).day(0),

我尝试了day(1),然后从星期一开始建立周,  但如果该月的第一天是星期日,那么它会在上个月的屏幕上离开这一天,显示从第二天开始的当前日期:

previous month this month

我该怎么做?

2 个答案:

答案 0 :(得分:2)

我得到它至少使用

正确渲染当前月份
date = this.state.month.clone().startOf("month").add("w" -1).day(1),

正如您所提到的,同时重新排列星期几的标签

var DayNames = React.createClass({
    render: function() {
        return <div className="week names">
            <span className="day">Mon</span>
            <span className="day">Tue</span>
            <span className="day">Wed</span>
            <span className="day">Thu</span>
            <span className="day">Fri</span>
            <span className="day">Sat</span>
            <span className="day">Sun</span>
            </div>;
    }
});

小提琴:https://jsfiddle.net/yy33bmze/3/

答案 1 :(得分:2)

好的,我明白了。 应该使用startOf('isoWeek'),而不是试图将明确的一天作为一周的开始。 而不是

date = this.state.month.clone().startOf("month").add("w" - 1).day(0),

我做了:

date = this.state.month.clone().startOf("month").add("w"-1).startOf('isoWeek'),

现在它看起来正确:

enter image description here