繁体   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