【问题标题】:Date-fns date different after format()date-fns 日期在 format() 之后不同
【发布时间】:2019-08-28 21:34:59
【问题描述】:

如果我使用 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() 中的错误还是预期的输出?如果是这样,是否有可能解决这个问题?

【问题讨论】:

    标签: javascript date date-fns


    【解决方案1】:

    我只是在和某人讨论这个问题。如果您将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
    

    【讨论】:

      猜你喜欢
      • 2019-05-06
      • 2021-01-23
      • 2021-06-22
      • 2021-11-14
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多