选择时如何设置prime-ng日历的默认日期

How to set default date of prime-ng calendar when it is selected

我使用的是 prime-ng 日历,我不知道如何在打开时设置默认日期。问题是我知道如何在页面打开时为表单字段设置默认值,但我希望该字段保持为空。我只想在打开日历后选择一个默认字段。现在它默认为当前日期时间,我正在寻找当前日期,但时间总是从中午 12 点开始。如果有帮助,我会将其与 Angular 的表单生成器结合使用。

我查看了 prime-ng 文档(https://www.primefaces.org/primeng/#/calendar),但似乎找不到与此相关的任何内容。我认为 onFocus 事件可能有一个解决方案,但那是我在黑暗中拍摄,因为我不知道如何使用它们。

这是我当前的日历字段

<fieldset class="form-group">
      <label for="expected-arrival-date">Expected Arrival Date</label><br>
      <p-calendar dateFormat="mm-dd-yy" hideOnDateTimeSelect="true" hourFormat="12" showTime="true" [showIcon]="true" [formControl]="requestForm.controls['expected_arrival_date']" name="expected-arrival-date" id="expected-arrival-date"></p-calendar>
</fieldset>

我希望表单值最初为空。当打开日历时,我希望默认日期是当前日期,默认时间是中午 12 点。

我无法测试下面的代码,因为 prime-ng 不在 stackblitz 或类似的东西上,但你可以在你的 random.component.ts 中尝试:

ngOnInit() {
   this.requestForm.get('expected_arrival_date').setValue(new Date());
   // or this.requestForm.get('expected_arrival_date').patchValue(new Date());
}

编辑: 如果您只想 select 日历活动时的默认日期,您可以尝试 属性 defaultDate :

        <p-calendar dateFormat="mm-dd-yy" hideOnDateTimeSelect="true" hourFormat="12" 
    showTime="true" [showIcon]="true" 
[defaultDate]="myDate" [formControl]="requestForm.controls['expected_arrival_date']" 
    name="expected-arrival-date" id="expected-arrival-date"></p-calendar>

在 ts 中,myDate 将类似于:

myDate = new Date(); // or whatever

这对我有用,只需传入 javascript Date 函数即可转换。

    postOn:Date=null;
    export class myDate{
    getDAte(){
//"2019-07-31 11:00"
     this.detailannounce.postDateTime="2019-07-31 11:00";
    this.postOn =(this.detailannounce.postDateTime!=null)?(new Date(this.detailannounce.postDateTime)):null;
    }
    }