我正在尝试解决 JS 返回上个月数字的问题,如果我输入“2023-01-01”或“2023-02-01”之类的日期,它会返回上个月数字。对于第一种情况,它返回月份数 11,但它应该是 0。在第二种情况下,它返回 0,而它应该是 1。如果我选择一个日期,例如“2023-01-02”,则正确的月份数是返回 0。我正在使用控制台进行调试,如下所示:
const date = "2023-01-01";
console.log(date)
console.log(new Date(date).getMonth()) Run Code Online (Sandbox Code Playgroud)
并使用 html 输入来设置日期变量。知道为什么会发生这种情况以及如何解决吗?
getMonth正在使用您的本地浏览器时区。如果您的当地时区恰好位于 UTC+0 以西,您将在 UTC 月份的第一个小时内获得上一个当地月份。getUTCMonth代替使用。
const date = "2023-01-01";
console.log(date)
console.log(new Date(date).getUTCMonth())
Run Code Online (Sandbox Code Playgroud)