gpt4 book ai didi

javascript - Momentjs,如何跳过星期日?

转载 作者:行者123 更新时间:2023-11-30 16:12:33 25 4
gpt4 key购买 nike

我有一个条件,我必须将开始和结束日期从父组件发送到子组件。

简单来说,我将向子组件发送开始日期和结束日期。结束日期将添加到开始日期(可以是 3、5、7)。即,如果开始日期是 2016-01-01(要添加的变量是 3),结束日期是 2016-01-03。

但是,我需要考虑另一种情况,我必须跳过星期天。

假设如果 2016-01-02 是星期日,那么结束日期应该是 2016-01-04。

开始日期在 getInitialState() 中初始化

getInitialState(){
variable_to_add:5,
start_date: moment().format("YYYY-MM-DD"),
}
componentDidMount(){
this.setState({end_date:moment().add(Number(variable_to_add),'day').format("YYYY-MM-DD")
}
render(){
return <CallChild start_date={this.state.start_date} end_date={this.end_date}
},

任何完成或改进上述代码的建议都将受到高度赞赏。

最佳答案

您可以创建这样的函数来计算所需日期:

function addDaysWithoutSundays(date, daysToAdd) {
var tempEndDate = moment(date).add(daysToAdd, "day"),
countSundaysBetweenDates = function (startDate, endDate) {
var daysDiff = endDate.diff(startDate, 'days');
return Math.floor((startDate.day() + daysDiff)/ 7 );
},
countSundays = countSundaysBetweenDates(date, tempEndDate);
return moment(date).add(daysToAdd - countSundays, 'days');
}

你可以在这里试试JsFiddle (您可以在控制台中找到结果)

关于javascript - Momentjs,如何跳过星期日?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36026377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com