微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

dayjs().startOf('day') 后移两小时

如何解决dayjs().startOf('day') 后移两小时

我想解决我遇到的 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.jsexpress.js 来运行 day.js节点 版本为 15.8.0 Express 版本是 4.17.1 Dayjs 版本是 1.10.4

非常感谢!

解决方法

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

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

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

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

希望对大家有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。