【问题标题】:Angular2 - Issue with Date pipeAngular2 - 日期管道问题
【发布时间】:2018-04-08 02:35:45
【问题描述】:

我正在尝试将我从数据库中获取的日期时间格式化为以下格式:

15/09/2016, 20:45

但是使用 Angular2 提供的默认 date Pipe,我得到以下信息(当我在真实设备上运行时但是,在浏览器上它显示了正确的格式:

2016 年 9 月 15 日,晚上 20:8:45

这是我在 HTML 端的格式化方式:

{{ order.time | date:"dd/MM/y, HH:mm" }}

有什么想法吗?

【问题讨论】:

  • 获取日期时,是字符串类型还是日期类型?
  • @micronyks 日期类型
  • @micronyks 你所说的日期类型是什么意思?在 JSON 中它只会是字符串格式,对吗?
  • @HamzaL。 See my answer here.

标签: angular


【解决方案1】:

有很多方法可以做到这一点。您必须确保您获取的日期必须是日期格式。如果是,它将与 日期管道 一起正常工作。如果不是,您必须确保将其转换为日期,如下所示。 (这可能有助于你理解我的意思)

工作演示:https://plnkr.co/edit/aaFu5G759ghUQvk1a9Zw

import { Component } from '@angular/core';
import { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';
@Component({
  selector: 'my-app',
  template: `      
  {{date|date:"dd/MM/y, HH:mm"}} //<----- here make sure date variable has proper date(type)
  `
})
export class AppComponent { 

  date=new Date(2016,08,5,20,45);   

  //<---- date variable gets proper date(type)
  //<---- also note month starts with zero(0) so for sep month (08) is taken.
}

【讨论】:

  • 您的答案的问题是,在控制器级别我没有 date 变量,因为它是在视图级别使用 ngFor 生成的。此外,日期对象以下列格式从数据库接收:2016-09-15T19:45:00.000Z
  • 没关系。我只是给了你一些提示。不管你有什么,你只需要确保你在最后处理日期类型。然后 n 然后它会按照你想要的方式工作。
  • 我不能让它工作,特别是因为从数据库接收的格式是2016-09-15T19:45:00.000Z
  • 您可以轻松地将其转换为日期格式。只需谷歌一下,您就可以解决您的问题。
  • 不确定,但我认为它(您刚刚展示的那个)称为 ed timestamp format。现在搜索如何将其转换为正确的期望日期。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-15
  • 2016-12-13
  • 2017-06-25
  • 2017-03-15
  • 2018-01-30
  • 2017-07-28
  • 2013-08-08
相关资源
最近更新 更多