簡體   English   中英

日期選擇器持續時間問題

[英]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())
    }
}

這是日期選擇器的外觀:

在此處輸入圖片說明

您應該同時在ngOnChangesonDatesChange減去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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM