角度日期时间

时间:2014-04-01 14:13:38

标签: json angularjs json.net

我们正试图在angualar databind中显示正常的日期时间

{{result.ReceivedDateTime | date:'mediumTime' }}

然而,结果如下:/ Date(1395273600000)/

我猜这是JSONS数据时间(毫秒)

是否有一种简单的方法可以让它显示正确的格式化日期,而不是

/Date(1395273600000)/ 

我们试图谷歌,但似乎无法找到答案,任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

从上面的消息中,我们有以下解决方案适用于角度

{{result.ReceivedDateTime.substring(6, result.ReceivedDateTime.length - 2) | date:'dd/MM/yyyy HH:mm' }}

将考虑创建一个自定义过滤器,这样就可以实现这一点,而无需内联子字符串等

答案 1 :(得分:0)

我经常使用的过滤器采用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'}}

/-/g,"/"中的正则表达式.replace()用于处理与浏览器的不一致。 Chrome将在ISO日期中使用-正确转换为ms。但FF不会。他们需要/。因此,将所有-替换为/,它可以在浏览器中使用。


我团队中的另一位开发者喜欢使用不同的过滤器:

.filter('dateToISO', function() {
  return function(input) {
    input = new Date(input).toISOString();
    return input;
  };
})

我还没有测试过这个。我并不总是使用带有角度过滤器的ISO日期运气好(因此我采用ISO日期并在我的第一个解决方案中将其转换为MS)。