角度 2 日期管道添加或子小时



我对新的 Angular 2 日期管道有问题。

我有一个日期值是;

let myDate = '2017-01-31T17:53:36'

我使用日期管道作为格式化程序,像这样显示在视图中;

{{myDate | date: 'dd/MM/yyyy HH:mm' }}

但它向我显示了当地时间,增加了 +3 小时。

31/01/2017 20:53

我想展示一下确切的时间;

31/01/2017 17:53

我该怎么做?

希望它能有所帮助:https://www.reddit.com/r/Angular2/comments/4so1j7/how_to_set_locale_for_datepipe/

这是一个管道,您可以在模板中使用它。基本上就我而言,我的webApi返回完整的日期格式(即。2015 年 12 月 15 日星期二 13:30:32 GMT-0500(东部标准时间))。所以在我的管道中,我做了新的Date(value),它将从字符串创建一个javascript Date对象。如果从 http 调用返回的日期不包含任何本地化信息,则解析后的日期将像当前时区一样。

您可以扩展PipeTransform并创建自己的UTCDatePipe,然后覆盖transform方法和第一个参数,该参数将是日期执行.UTC(),然后应用给定的模式(作为转换方法中的第二个参数提供)并返回该模式。

以下是作为参考的 DatePipe 代码:https://github.com/angular/angular/blob/4.0.0-beta.2/modules/%40angular/common/src/pipes/date_pipe.ts

类的此方法将以"2017 Jun 26 23:59:00"格式返回您的日期。

   month:string[] = ["1 月"、"2 月"、"3 月"、"4 月"、"5 月"、"6 月"、"7 月"、"8 月"、"9 月"、"10 月"、"11 月"、"12 月"];    getDateFormat(dateStr:string){      let dateObj = new Date(dateStr);      let year = dateObj.getUTCFullYear();      let month = dateObj.getUTCMonth();      let date = dateObj.getUTCDate();      let time = dateObj.getUTCHours() + ':' + dateObj.getUTCMinutes() + ':' +dateObj.getUTCSeconds();      让显示日期时间 = 日期 + ' ' + 这个.月[月] + ' ' + 年 + ' ' + 时间;      console.log(显示日期时间);      返回显示日期时间;    }

还可以通过编辑此方法返回的"displayDateTime"变量来更改格式。

最新更新