gpt4 book ai didi

javascript - 日期 2019-04-01T00 :00:00. 000Z 给我上个月(三月,而不是四月)

转载 作者:行者123 更新时间:2023-11-29 23:01:16 31 4
gpt4 key购买 nike

所以,我将每月的第一天设为 2019-04-01T00:00:00.000Z

当我使用 moment(date).month() 时,它返回 2,而不是 3。所以,我收到的是三月,而不是四月。

它有什么问题,为什么我会收到上个月的日期?也许是时区的问题?因为我的时区是 GMT-4,所以,这可能是个问题?

我应该使用 UTC 还是 ISO 字符串来处理日期?

最佳答案

正如您提到的,您的时区是 GMT-4。您提供的日期采用 UTC 格式。末尾的“Z”代表祖鲁时间,与 UTC 相同。momentjs 会将其转换为本地时间。

如何处理这一切取决于您需要日期的目的。如果这是您之前保存在服务器某处的日期,那么在保存时添加正确的时区可能很重要。如果您让服务器创建这些日期,请小心,因为服务器可能与您的客户端运行在不同的时区。如果您在 JS 中创建一个 new Date(),它将返回一个日期对象,其中包含您本地时间的当前时间。如果这发生在以不同时区或 UTC(例如 Docker 容器)运行的服务器上,它将在该时区创建一个日期。

解决此问题的最佳方法是考虑您的确切用例。有大量关于处理日期的文章,这并不容易。如果您有时间,此播客有助于解释日期的工作原理,并帮助您更好地了解日期的一般情况: Coding Blocks - Why Date-ing Is Hard

关于javascript - 日期 2019-04-01T00 :00:00. 000Z 给我上个月(三月,而不是四月),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55546352/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com