我正在开发一个会议网站,一些用户抱怨日程中显示的日期中的星期几是错误的:而不是例如“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()
来代替,但这是一个不同的问题。
感谢您的帮助!
解决了,确实是时区问题,用
getUTCDay()
代替getDay()
似乎解决了。