【问题标题】:Getting issue while set the previous month date as default to calender Angular将上个月日期设置为默认日历Angular时出现问题
【发布时间】:2022-01-24 05:55:12
【问题描述】:

我在日历中将上个月 1 日设置为默认值,并限制不超过但从当前日期开始更改年份,它必须转到上一年 就像当前日期是 24/1/2022 我想设置默认 1/12/2021 我用这种和平的代码它不起作用

.ts 文件

this.minDate = {
  year: current.getFullYear(),
  month: current.getMonth(),
  day: (new Date(current.getFullYear(), current.getMonth()-1, 1).getDate())
};

.html

 <input class="form-control" autocomplete="off" [(ngModel)]="startDateVal"
        placeholder="From yyyy-mm-dd" name="dp1"   [minDate]="minDate"  ngbDatepicker #d="ngbDatepicker" (ngModelChange)="dateSelected($event)" >
        <span class="icofont icofont-ui-calendar input-group-text"></span>

日历无法正常工作。

【问题讨论】:

标签: angular typescript date angular-components


【解决方案1】:

我尝试了这个对我有用的解决方案:

 let current = new Date();
  current.setMonth(current.getMonth()-1);
  start.year = current.getFullYear();
  start.month = current.getMonth()+1;
  start.day = (new Date(current.getFullYear(), current.getMonth()+1, 1).getDate())

【讨论】:

    【解决方案2】:

    您需要使用https://ng-bootstrap.github.io/#/components/datepicker/overview#date-modelNgbDateStruct(具有年、月、日等字段的对象)而不是内置的JavaScript Date 对象。例如,要设置一个最小日期,您可以使用:

    minValue = {year: 2021, month: 12, day: 1};
    

    【讨论】: