我们试图在 angualar databind 中显示正常的日期时间
{{result.ReceivedDateTime | date:'mediumTime' }}
无论如何,结果显示为:/日期(1395273600000)/
我猜这是 JSON 数据时间(毫秒)
有没有一种简单的方法可以让它显示正确格式化的日期而不是
/Date(1395273600000)/
我们试图谷歌,但似乎找不到答案,任何帮助将不胜感激。
从上面的消息中,我们有以下适用于角度的解决方案
{{result.ReceivedDateTime.substring(6, result.ReceivedDateTime.length - 2) | date:'dd/MM/yyyy HH:mm' }}
将考虑创建自定义过滤器,以便在不需要内联子字符串等的情况下实现这一点
我常用的过滤器采用ISO日期并将其转换为MS。然后,您可以使用任何date
滤镜,从角度
示例日期:
"2014-04-01 10:16:00"
滤波器
.filter('isoToMS', function() {
return function(input) {
var ms = Date.parse(input.replace(/-/g,"/"));
return ms;
};
})
.HTML
{{result.date | isoToMS | date:'dd/MM/yyyy HH:mm'}}
.replace()
中的正则表达式/-/g,"/"
是处理与浏览器的不一致。Chrome 将在 ISO 日期中正确转换为 ms,并-
。但FF不会。他们需要/
.因此,通过将所有-
替换为 /
,它可以跨浏览器工作。
我团队中的另一位开发人员更喜欢不同的过滤器:
.filter('dateToISO', function() {
return function(input) {
input = new Date(input).toISOString();
return input;
};
})
不过我还没有测试过这个。我并不总是很幸运地使用带有 Angular 过滤器的 ISO 日期(因此我在我的第一个解决方案中采用 ISO 日期并将其转换为 MS)。