Date-fns 日期在 format() 之后不同
Date-fns date different after format()
如果我使用 date-fns 创建日期 addYears()
我会看到预期的日期:
let d = addYears(new Date('2015-01-01), 1) // 2016-01-01T00:00:00.000Z
但是,当我使用format()
作为字符串输出时,我损失了一天:
let f = format(d, 'YYYY-MM-DD')
// expected output: 2016-01-01
// actual output: 2015-12-31
这是 format()
中的错误还是预期的输出?如果是这样,是否可以解决此问题?
我正和某人讨论这个问题。如果将 T00:00
(明确设置小时和分钟)附加到日期字符串,它会存储正确的日期。如果省略时区偏移量的小时和分钟,则日期时间将被解释为用户本地时间。当您完全省略时间时,日期将被解释为 UTC。
所以foo = new Date('2015-01-01T00:00')
应该存储正确的日期,然后按原样使用format.()
函数,它会输出正确的日期。
let d = addYears(new Date("2015-01-01T00:00"), 1);
let f = format(d, "YYYY-MM-DD");
will output ---> 2016-01-01
如果我使用 date-fns 创建日期 addYears()
我会看到预期的日期:
let d = addYears(new Date('2015-01-01), 1) // 2016-01-01T00:00:00.000Z
但是,当我使用format()
作为字符串输出时,我损失了一天:
let f = format(d, 'YYYY-MM-DD')
// expected output: 2016-01-01
// actual output: 2015-12-31
这是 format()
中的错误还是预期的输出?如果是这样,是否可以解决此问题?
我正和某人讨论这个问题。如果将 T00:00
(明确设置小时和分钟)附加到日期字符串,它会存储正确的日期。如果省略时区偏移量的小时和分钟,则日期时间将被解释为用户本地时间。当您完全省略时间时,日期将被解释为 UTC。
所以foo = new Date('2015-01-01T00:00')
应该存储正确的日期,然后按原样使用format.()
函数,它会输出正确的日期。
let d = addYears(new Date("2015-01-01T00:00"), 1);
let f = format(d, "YYYY-MM-DD");
will output ---> 2016-01-01