1884年1月2日之前的日期显示为Angular2 Date管道中的前一天

时间:2016-10-12 18:30:24

标签: javascript date angular typescript

我正在使用以下代码从简单的HTML date输入字段中收集日期:

new Date(Number(dateString.substring(0,4)), Number(dateString.substring(5,7))-1, Number(dateString.substring(8,10)))

...然后我使用以下代码将这些日期输出给用户:

startDate?((startDate | date | uppercase)

这适用于1884年1月1日之后的任何日期。因此,1884年1月2日工作正常(从我所知的任何日期到今天),但如果我进入1884年1月1日,它将显示为12月1884年1月1日之前的任何日期都有同样的问题。

我知道它会在显示时将其转换回我的本地时区,但是这个问题应该在所有日期显现(我已经遇到过)。 1884年1月1日发生了什么?为什么这个日期特别?

我还注意到,如果我回去,到0100年1月1日 - 一天就会增加。那天就到了0100年1月2日。

我不确定交叉发生在哪里,但肯定会发生一些有趣的事情。如果我只是将日期值输出到控制台我正确得到:

1884-01-01T08:00:00.000Z

......那个月的第二天我得到了,可以预见:

1884-01-02T08:00:00.000Z

所以似乎Angular2 date管道正在改变它。这是一个错误还是我做错了什么(这是可信的)?

0 个答案:

没有答案