【问题标题】:Angular 4 shows time part wrong in datetimeAngular 4 在日期时间中显示时间部分错误
【发布时间】:2017-06-07 07:53:39
【问题描述】:

我的 Angular 组件 html 上有这样的输入:

<input id="orderdate" class="form-control" value="{{order.OrderDate | date: 'd.M.yyyy H:mm:ss'}}" disabled />

order.OrderDate 的值为 2017-06-01T10:52:03.666723,我希望看到格式中的值

1.6.2017 10:52:03。

然而,我真正得到的是

1.6.2017 10:00:6/1/2017 10:52:03 AM:6/1/2017 10:52:03 AM

如果我只使用日期 (d.M.yyyy),它可以正常工作 (1.6.2017)。为什么时间部分显示错误?

【问题讨论】:

    标签: html angular


    【解决方案1】:

    我认为它应该采用这种格式'd.M.y H:mm:ss'。 Angular Date Pipe

    【讨论】:

    • 我尝试使用 ,现在输入显示 1.6.2017 10 AM:6/1/2017 10:52:03 AM:6/1/2017 10:52:03 AM。有趣。
    • 我的错,刚刚检查了 pulker 上的代码,它给出了相同的输出,但你的实际代码给出了正确的结果。你在哪个版本的 Angular 上运行?
    • Angular 版本 4.0.0
    • 嗯,日期管道似乎可以在 Chrome 和 Firefox 上运行,但不能在 IE 或 Edge 上运行。
    • 似乎它是一个开放的问题。尝试使用此解决方法。 stackoverflow.com/questions/39728481/…
    【解决方案2】:

    感谢 Thiagz 的评论,我在这里找到了解决此问题的方法:Angular2 date pipe does not work in IE 11 and edge 13/14

    这似乎是 IE 和 Edge 中的错误,所以我不得不为日期创建自己的管道。

    DataxPipe.ts:

    import { Pipe, PipeTransform } from '@angular/core';
    import * as moment from 'moment';
    
    @Pipe({
        name: 'datex'
    })
    
    export class DatexPipe implements PipeTransform {
        transform(value: any, format: string = ""): string {
            var momentDate = moment(value);
    
            if (!momentDate.isValid()) return value;
    
            return momentDate.format(format);
        }
    }
    

    像这样使用它:

    <input id="orderdate" class="form-control" value="{{order.OrderDate | datex: 'd.M.YYYY H:mm:ss'}}" disabled />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多