[英]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.