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

时间:2017-02-03 16:25:27

标签: date angular filter pipe

我对新的 Angular 2 Date Pipe。

有疑问

我的日期值是;

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

我使用Date Pipe作为格式化程序在这个视图中显示;

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

但它显示当地时间增加+3小时。

31/01/2017 20:53

我想说明确切的时间;

31/01/2017 17:53

我该怎么做?

3 个答案:

答案 0 :(得分:2)

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

  

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

此课程的方法将在2017年6月26日23:59:00'格式。


    months:string[] = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    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();

      let displayDateTime = date + ' ' + this.months[month] + ' ' + year + ' ' + time;
      // console.log(displayDateTime);
      return displayDateTime;
    }

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