[英]Issue with date-picker duration
有某种“广告系列持续时间”,这意味着您可以在月份的第一天和最后一天之间选择日期。 如果您选择的日期不在月份的第一天和最后一天之间,例如下个月的某个日期,则后端API将返回“输入参数错误”。
当前的工作方式类似于当我在日期选择器中选择最后一个日期(每月的第30天)时,后端API将返回“输入参数错误”。 这意味着他像下个月的第一天一样数30天。 我应该将日期选择减少一天。
问题是我应该在代码中减去哪一天的“ endDate”属性?
此模式的HTML部分,其中是以下日期选择器:(您可以在此处看到endDate,我想将该endDate减去1天)
<!-- 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>
nano-date-picker组件:
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())
}
}
这是日期选择器的外观:
您应该同时在ngOnChanges
和onDatesChange
减去day。
您应该在此处减去日期:
this.datePicker = new DatePicker(startDate, endDate);
需要这样减去此结束日期:
endDate.setDate(endDate.getDate() - 1);
this.datePicker = new DatePicker(startDate, endDate);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.