Angular2日期管道自动将时区添加到日期

5

我有一个日期字符串,例如 1987-06-15T00:00:00.000Z,当我在它上面添加日期管道时,日期会显示不同的日期,例如在美国时区显示为Jun 14, 1987,但在印度则显示正确。

<div>{{'1987-06-15T00:00:00.000Z' | date}}</div>

你想要输出格式为 dd/MM/yyyy 吗? - The Hungry Dictator
您可以在日期管道中指定格式。如果您不满意现有的日期管道格式,您可以在模块中创建并注册自己的管道。 - Amit Kumar Singh
2个回答

4

这段代码对我有效。

<div>{{date_of_birth.split("T")[0] | date}}</div>

更干净/更慢/更好/更差?<div>{{date_of_birth | splice: 0:10 | date}}</div> - Tim Harker

4

字符串1987-06-15T00:00:00.000Z在不同的浏览器时区中代表不同的日期。

解决方法

如果您不想根据时区更改日期,请使用字符串解析(例如substr),而不是日期解析。


日期管道中有任何选项吗? - byteC0de
不是的。它的意思是以用户所在时区表示给定日期。 - basarat
1
警告:
  • 此管道使用国际化 API。因此,它只在 Chrome 和 Opera 浏览器中可靠。
https://github.com/angular/angular/blob/4.3.3/packages/common/src/pipes/date_pipe.ts#L16-L143
- Max

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接