有某种"广告系列的持续时间"这意味着您可以选择月份的第一天和最后一天之间的日期。如果您选择不在月份的第一天和最后一天之间的日期,例如下个月的某个日期,则Backend API将返回"输入参数错误"。
当前的工作方式就像我选择日期选择器中的最后一个日期(月份的第30天),后端API将返回"输入参数错误"。 这意味着他将在下个月的第一天算上第30天。 我应该将日期选择更改为少一天。
问题是在代码中我应该减去1天" endDate" -property?
这个模式的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>
纳米日期选择器组件:
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())
}
}
以下是日期选择器的外观:
答案 0 :(得分:1)
您应该在ngOnChanges
和onDatesChange
中减去一天。
你应该在这里减去你的日期:
this.datePicker = new DatePicker(startDate, endDate);
这个结束日期需要这样减去:
endDate.setDate(endDate.getDate() - 1);
this.datePicker = new DatePicker(startDate, endDate);