我正在使用以下代码从简单的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
管道正在改变它。这是一个错误还是我做错了什么(这是可信的)?