【问题标题】:Angular 2/4/5 - Bind UTC formatted date to datepickerAngular 2/4/5 - 将 UTC 格式的日期绑定到 datepicker
【发布时间】:2018-09-20 20:32:42
【问题描述】:

我对 Angular 和 Angular Material 非常陌生。

对于我的后端希望它采用 zonedDate 格式的日期。 (例如:2018-04-11T02:12:04.455Z[UTC])

所以我得到了上述格式的值,它不绑定到 mat-datepicker。

这里是html代码:

<mat-form-field class="fx-cell-1" floatLabel="never">
    <input matInput name="myDate" [matDatepicker]="myDate" placeholder="Date of Expense"
    [(ngModel)]="myDate" #myDate="ngModel" [max]="maxDate" required >
    <mat-datepicker-toggle matSuffix [for]="myDate"></mat-datepicker-toggle>
    <mat-datepicker #myDate></mat-datepicker>
</mat-form-field>

所以这里 ngModel 没有绑定到 datepicker 的值。

经过一番观察,我意识到:

值为“2018-04-11T02:12:04.455Z[UTC]”的日期绑定到日期选择器。

值为“2018-04-02T14:00Z[UTC]”的日期不绑定到日期选择器。

有什么建议吗???

【问题讨论】:

  • 如果您的日期是一个简单的字符串,您是否尝试将其包装成new Date('myDate'),然后在您的日期选择器中使用它?
  • 是的,我试过了。但它总是给出一个错误,说“无效日期”。
  • 我在new Date() 中尝试了两个字符串,但都说无效日期。从字符串中删除 [UTC] 后,两者都将被正确读取为 UTC 时间的日期时间实例。所以只需去掉括号部分,一切都应该工作。

标签: angular typescript datepicker angular-material


【解决方案1】:

因此,基本上,您可以使用 javascript 函数 toISOString() 转换此日期。

或者只是创建 new Date() 对象。

在我的情况下,日期转换为某种错误的格式,因此出现错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2019-04-07
    相关资源
    最近更新 更多