JavaScript Date.getDay() 返回错误的日期,但仅适用于某些用户

问题描述 投票:0回答:1

我正在开发一个会议网站,一些用户抱怨日程中显示的日期中的星期几是错误的:而不是例如“8月3日(星期六)”他们看到“8月3日(星期五)”。 8 月 3 日是星期六,所以我不知道这怎么可能,这不可能是时区问题,因为该月的日期仍然是正确的。

这是我获取日期名称的函数(该函数接收

YYYY-mm-dd
格式的日期):

const dayOfWeek = (date) => {
  const dateObj = new Date(date);
  const day = dateObj.getDay();
  const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];

  return days[day];
};

(为了方便起见,我将日期名称翻译成英语,但在我的代码中是另一种语言。)

我看不出我的代码有什么问题,我能找到的唯一解释是

getDay()
为不同的用户提供了不同的结果,但我不知道这是怎么可能的。我无法重现该问题,它对我和其他(大多数?)用户来说可以正常工作,但有几个用户抱怨了这个问题。

也许这是一个区域设置问题,对于某些用户来说,一周从星期一开始?但是,无论区域设置如何,

getDay()
都应该在周日给出
0
,并且在我的区域设置中,一周也从周一开始,所以我不知道。 我在谷歌上找到的所有关于
getDay()
给出错误结果的信息都是人们想要使用
getDate()
来代替,但这是一个不同的问题。

感谢您的帮助!

javascript date
1个回答
0
投票

解决了,确实是时区问题,用

getUTCDay()
代替
getDay()
似乎解决了。

© www.soinside.com 2019 - 2024. All rights reserved.