角度日期时间



我们试图在 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)。

相关内容

  • 没有找到相关文章

最新更新