【问题标题】:date-fns isToday() returning a confusing valuedate-fns isToday() 返回一个令人困惑的值
【发布时间】:2020-01-09 16:46:21
【问题描述】:

我对 date-fns isToday() 函数的输出感到困惑。

运行new Date()我目前得到2019-09-06T20:12:40.737Z

我正在运行 2019-09-06T00:00:00.000Z 到 isToday(),它返回 false。

我也很困惑,因为当我将日期字符串化时,它会返回昨天的日期。

cost isToday = require('date-fns/isToday')

myDate === // 2019-09-06T00:00:00.000Z

console.log(new Date())
// 2019-09-06T20:12:40.737Z

console.log(isToday(myDate))
// false

console.log(myDate.toString())
// Thu Sep 05 2019 18:00:00 GMT-0600 (Mountain Daylight Time)

这是时区问题吗?我是否误解了 javascript 日期的存储方式?或者这是一个 date-fns 问题?

【问题讨论】:

  • 那个库的文档很糟糕,所以很难说它打算为那个函数做什么。如果您的 myDate 变量被初始化为 UTC 时间戳,那么它肯定是一个时区。
  • 可以分享一下isToday()函数的代码吗?
  • @FaraazMalak 它是该库的一部分,它不是 OP 的代码

标签: javascript date-fns


【解决方案1】:

我想到的东西

new Date('2019-09-06T00:00:00.000Z') 输出给我 Thu Sep 05 2019 21:00:00 GMT-0300

new Date('2019-09-06T00:00:00.000') 输出给我 Fri Sep 06 2019 00:00:00 GMT-0300

请注意,最后的 Z 使 Date 将其视为时区 +00:00。我就扔了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-08
    • 2016-08-31
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 2012-12-05
    相关资源
    最近更新 更多