我的代码如下,安装了角矩包:
<td data-ng-bind="'2019-02-04T13:42:06.927+00:00' | amTimezone:'America/Halifax' | amDateFormat: 'MM/DD/YYYY hh:mm A'"></td>
该代码输出:“ 02/04/2019 01:42 PM”
当我在没有amDateFormat过滤器的情况下运行以上代码时,我得到: “ 2019年2月4日星期一9:42:06 GMT-0400”
所以我知道每个过滤器都在工作,但是在对angular-moment.js文件进行了一些调试之后,preprocessDate称它为破坏我的时区信息的原因。
.filter('amDateFormat', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) {
function amDateFormatFilter(value, format) {
if (isUndefinedOrNull(value)) {
return '';
}
var date = amMoment.preprocessDate(value);
if (!date.isValid()) {
return '';
}
return date.format(format);
}
amDateFormatFilter.$stateful = angularMomentConfig.statefulFilters;
return amDateFormatFilter;
}])
在我的angular-moment.js文件的angularMomentConfig中,预处理已设置为null,但它正在运行moment.js中的createUTC()作为预处理器功能。
我不知道如何调用该函数,或者这是否是导致我的问题的原因,但我们将不胜感激。
答案 0 :(得分:0)
我知道了。 我们在核心模块中设置了一个我没有看过的预处理器。
.constant('angularMomentConfig', {
preprocess: moment.utc
})
删除后,它才能正常工作。