1

我正在使用 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 点。

4

2 回答 2

2

我无法测试下面的代码,因为 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());
}

编辑:如果您只想在日历处于活动状态时选择默认日期,您可以尝试以下属性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
于 2019-06-27T20:09:22.653 回答
0

这对我有用,只需通过传入 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;
    }
    }
于 2019-07-25T12:09:50.783 回答