0

我想解决我遇到的一个dayjs问题。现在,除了糟糕的时区设置外,我没有线索和/或猜测会发生什么。但是,如果我什至没有在代码中的任何地方修改它,时区又怎么能在这里发挥作用呢?

我有一个dayjs对象,我想用它开始新的一天。将输出打印到控制台时,我得到:

d {
  '$L': 'en',
  '$d': 2021-03-18T22:00:00.000Z,
  '$x': {},
  '$y': 2021,
  '$M': 2,
  '$D': 19,
  '$W': 5,
  '$H': 0,
  '$m': 0,
  '$s': 0,
  '$ms': 0
}

实际上,这意味着正确设置了月、日、周、小时、分钟、秒和毫秒选项(它们都为零),但其中的日期字段$d绝对错误(由于某种原因它向后移动了 2 小时)。如何正确更新日期?请解释为什么会发生这种情况,以便我知道将来如何处理它。

使用node.jswithexpress.js继续运行day.jsNode版本是15.8.0 Express版本是4.17.1 Dayjs版本是1.10.4

提前谢谢了!

4

1 回答 1

0

(抱歉,英语不是我的第一语言)我可以用我为工作所做的事情来回答,同时其他人可能会用更好的解释来回答。

在 dayjs 文档中有一个UTC 插件部分,有一个名为.utcOffset()的函数可用于将偏移量设置为 0,我使用它是因为我和你有同样的问题,有 5 小时的间隔,所以获取时间为 0 的日期我这样使用它:

let today = dayjs().utcOffset(0).startOf('date').toDate();

它给了我零时、分和秒的日期2021-06-15T00:00:00.000Z

我希望它可以对某人有所帮助。

于 2021-06-15T17:22:33.260 回答