Angular DatePipe错误地更改了日期
在angular2中使用DatePipe时,我观察到一种奇怪的行为。由于某些原因,在通过日期管道运行日期“03/09/1992”后,它被更改为“03/08/1992”: (更新代码:bug修复)Angular DatePipe错误地更改了日期,angular,angular2-directives,Angular,Angular2 Directives,在angular2中使用DatePipe时,我观察到一种奇怪的行为。由于某些原因,在通过日期管道运行日期“03/09/1992”后,它被更改为“03/08/1992”: (更新代码:bug修复) 知道为什么会这样吗?还是我误解了什么?问题实际上是日光节约区 Mon Mar 09 1992 00:00:00 GMT-0400 (Eastern Daylight Time) Tue Mar 09 1993 00:00:00 GMT-0500 (Eastern Standard Time) Sat
知道为什么会这样吗?还是我误解了什么?问题实际上是日光节约区
Mon Mar 09 1992 00:00:00 GMT-0400 (Eastern Daylight Time)
Tue Mar 09 1993 00:00:00 GMT-0500 (Eastern Standard Time)
Sat Mar 09 1991 00:00:00 GMT-0500 (Eastern Standard Time)
请注意,GMT偏移是不同的,日期管道似乎会注意到这一点。这使得日期03/09/1992实际上转化为03/08/1992 23:00:00 PM
目前适用于我的一种可能方法(但有自己的问题)是使用UTC:
new Date(Date.UTC(1992, 2, 9, 5, 0, 0));
以上将确保偏移时间为5,并跨时区标准化 问题实际上是夏令时区域
Mon Mar 09 1992 00:00:00 GMT-0400 (Eastern Daylight Time)
Tue Mar 09 1993 00:00:00 GMT-0500 (Eastern Standard Time)
Sat Mar 09 1991 00:00:00 GMT-0500 (Eastern Standard Time)
请注意,GMT偏移是不同的,日期管道似乎会注意到这一点。这使得日期03/09/1992实际上转化为03/08/1992 23:00:00 PM
目前适用于我的一种可能方法(但有自己的问题)是使用UTC:
new Date(Date.UTC(1992, 2, 9, 5, 0, 0));
以上将确保偏移时间为5,并跨时区标准化 Plunker为我显示了正确的日期:DSo当你查看它时,你会看到第一行:“无效日期:03/09/1992”?是的,确切地说,我认为角度日期管有点问题(仍然?),至少在某个时候是这样的。好久没用了:)很有趣。我刚签入IE,它在IE中运行良好-我感兴趣的是
这个.dateType
和另外两个之间的时区差异。如果您在浏览器的开发者工具中运行:newdate(1991,2,9)
,其他年份也是如此(记住月份是0);你看到了什么?根据链接,不应该有时区差异。Plunker为我显示了正确的日期:DSo当你查看它时,你会看到第一行:“无效日期:03/09/1992”?是的,确切地说,我认为角度日期管道有点问题(仍然?),至少在某个时候是这样的。好久没用了:)很有趣。我刚签入IE,它在IE中运行良好-我感兴趣的是这个.dateType
和另外两个之间的时区差异。如果您在浏览器的开发者工具中运行:newdate(1991,2,9)
,其他年份也是如此(记住月份是0);你看到了什么?根据链接,不应该有时区差异。