Jo *_*aul 13 date-pipe angular
我有休息服务,它返回一个对象集合,其中一个字段是日期字符串(ISO-8601格式),日期值如下
"createdDate":"2017-02-21T12:56:50.907",
在angular4 UI中,我将DatePipe格式化为上述日期
{{resultItem.createdDate | 日期: '短'}}
而且我的错误转换如下: 2017年2月21日,上午7:56
而不是2/21/ 2017,0:56 AM
Jo *_*aul 28
我通过添加自定义管道解决了这个问题.
我的自定义管道基于Birwin提供的解决方案.谢谢Birwin.
这是我的名为UtcDate的自定义管道
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'utcDate'
})
export class UtcDatePipe implements PipeTransform {
transform(value: string): any {
if (!value) {
return '';
}
const dateValue = new Date(value);
const dateWithNoTimezone = new Date(
dateValue.getUTCFullYear(),
dateValue.getUTCMonth(),
dateValue.getUTCDate(),
dateValue.getUTCHours(),
dateValue.getUTCMinutes(),
dateValue.getUTCSeconds()
);
return dateWithNoTimezone;
}
}
Run Code Online (Sandbox Code Playgroud)
我还使用默认日期管道进行格式化
{{createdDate | utcDate | date:'short'}}
Run Code Online (Sandbox Code Playgroud)
小智 18
您可以将另一个参数传递给date管道,如下所示:
{{resultItem.createdDate | 日期:“短”:“ UTC”}}
此参数可以是类似'-0430'
或只是一个时区'GMT'
请参阅文档:https : //docs.angularjs.org/api/ng/filter/date
bir*_*win 10
您可能需要创建一个带有时区的日期的UTC日期...我假设您在太平洋时区,因为时间是UTC的7小时...
尝试使用此代码获取没有Timezone的新日期对象(假设您的变量名为"date"):
var datewithouttimezone = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17665 次 |
最近记录: |