在用户界面中输入预填日期

时间:2018-10-24 15:34:41

标签: angular typescript angular6 vmware-clarity

您好,我是vmware清晰度UI的新手,我的问题是我使用的是datetime-local,我想在datetime-local的文件中预先填充当前日期和时间,我想使用ngModel使用以下格式2017-06 -13T13:00,它已在用户界面中预先填充,但时间显示不正确, IST落后5小时。请让我知道我要去哪里了,谢谢!

html组件

 <clr-input-container>
    <label>Start Time</label>
    <input type="datetime-local" clrInput [(ngModel)]="start_time" name="start_time" style="width:100%" required />
    <!-- <clr-control-helper>Please choose Incident Start Date&Time in DD/MM/YYYY Hr:M:-AM/PM</clr-control-helper> -->
    <clr-control-error>This field is required!</clr-control-error>
 </clr-input-container>

ts文件

start_time =  new Date().toISOString().substr(0, 16);

enter image description here

1 个答案:

答案 0 :(得分:0)

这与Clarity无关,而是与某些HTML元素的工作方式无关。

问题是您要创建一个基于UTC的新日期,然后删除时区(substr会删除Z)。 datetime-local输入假定它在本地时区。因此,您必须在当地时区构建日期,然后日期才能正确显示。您将不得不手动构造时间(或使用MomentJS之类的库),因为没有JavaScript日期方法可以为您提供YYYY-MM-DDTHH:MM类型的格式。

datetime-local不受所有主流浏览器的支持,因此请注意不要使用它。