这个确定这个月最后一天的javascript方法对我来说不管用,他在乌克兰,但对我在美国的同事来说是有效的。我得到2022-10-30,我的同事得到2022-10-31。有什么问题吗?
var now = new Date();
const lastDayOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0).toISOString().split('T')[0];
console.log(lastDayOfMonth)
我创建了一个代码库,我们得到了不同的结果:
发布于 2022-10-27 11:39:09
是因为时区。new Date在本地时间中工作,但toISOString格式化日期/时间的UTC版本。您不希望混合UTC方法和本地方法,因为您将得到不一致的结果。在这种情况下,由于您领先于UTC,您在午夜的本地日期/时间是在UTC的前一天。但在美国,他们落后于世界协调时(而不是远远落后于他们有相反的问题),所以这对他们是有效的。
从UTC午夜开始,通过UTC方法开始,因此您始终使用单个时区:
const now = new Date();
const lastDayOfMonth = new Date(Date.UTC(now.getFullYear(), now.getMonth() + 1, 0))
.toISOString()
.split("T")[0];
console.log(lastDayOfMonth);
https://stackoverflow.com/questions/74221361
复制相似问题