gpt4 book ai didi

javascript - 日期选择器持续时间的问题

转载 作者:行者123 更新时间:2023-12-03 01:46:40 24 4
gpt4 key购买 nike

有某种“事件持续时间”,这意味着您可以在一个月的第一天和最后一天之间选择日期。如果您选择的日期不在该月的第一天和最后一天之间,例如下个月的某个日期,后端 API 将返回“输入参数错误”。

当前的工作原理就像当我在日期选择器中选择最后一个日期(一个月中的第 30 天)时,后端 API 将返回“输入参数错误”。这意味着他将第 30 天视为下个月的第 1 天。我应该将日期选择更改为少一天。

问题是我应该在代码中的哪个位置减去 1 天的“endDate”属性?

此模式的 HTML 部分,其中包含此日期选择器:(你可以在那里看到 endDate,我想减去 1 天的 endDate)

  <!-- startDate/endDate -->
<div class="nano-f-r nano-f">
<nano-date-picker [(startDate)]="campaignDto.dtoData.startDate"
[(endDate)]="campaignDto.dtoData.endDate"
[intervalMode]="campaignDto.id === 'new' ? dpIntervalFuture : dpIntervalBoth"
[maxIntervalDurationInMonths]="2"
style="height: 30px"></nano-date-picker>
</div>
</div>

纳米日期选择器组件:

   public isDaySelected(day: MonthDay): boolean {
return this.isDateRange === true
? day.startDate === this.datePicker.startDate || day.endDate === this.datePicker.endDate
: day.startDate === this.datePicker.startDate;
}

public ngOnChanges(): void {
const startDate = this.startDate ? moment(this.startDate).format() : moment().startOf('day').format();
const endDate = this.endDate ? moment(this.endDate).format() : moment(startDate).endOf('day').format();
this.datePicker = new DatePicker(startDate, endDate);
this.setDatePicker();

if (this.continiousDatesValue !== null) {
this.continiousDatesValueMoment = moment(this.continiousDatesValue);
}
if (this.previousDatesValue !== null) {
this.previousDatesValueMoment = moment(this.previousDatesValue);
}
}

private onDatesChange(): void {
this.startDateChange.emit(this.datePicker.startDate);
this.endDateChange.emit(this.datePicker.endDate);
this.startEndDateChange.emit({startDate: this.datePicker.startDate, endDate: this.datePicker.endDate});
this.isOpen = false;
}


public setRange(day: MonthDay): void {
if (this.isDateRange === true) {
this.datePicker.setRange(day, () => this.onDatesChange())
} else {
this.datePicker.setSingleDate(day, () => this.onDatesChange())
}
}

以下是日期选择器的外观:

enter image description here

最佳答案

您应该在 ngOnChangesonDatesChange 中减去日期。

编辑

您应该在此处减去您的日期:

this.datePicker = new DatePicker(startDate, endDate);

需要像这样减去结束日期:

endDate.setDate(endDate.getDate() - 1);
this.datePicker = new DatePicker(startDate, endDate);

关于javascript - 日期选择器持续时间的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50602131/

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