Javascript日期getDay()格式问题
我遇到了一个问题,JS试图获取特定日期的星期几:Javascript日期getDay()格式问题,javascript,date,Javascript,Date,我遇到了一个问题,JS试图获取特定日期的星期几: const searchDate = "2021-02-04"; const serchDateDayOfWeek = new Date( searchDate ).getDay(); console.log( serchDateDayOfWeek ) // => 3 我以为结果是周四4点,但现在是周三3点 在不修改seachDate格式的情况下,获取星期几值的正确方法是什么 提前谢谢 要解决这个问题,您需要创建一个数
const searchDate = "2021-02-04";
const serchDateDayOfWeek = new Date( searchDate ).getDay();
console.log( serchDateDayOfWeek ) // => 3
我以为结果是周四4点,但现在是周三3点
在不修改seachDate格式的情况下,获取星期几值的正确方法是什么
提前谢谢 要解决这个问题,您需要创建一个数组,按顺序包含天数的名称。在数组的索引端,将new Date.getDay放入数组的索引中,并应返回一个结果
console.log([
"Sunday",
"Monday",
"Tuesday",
"Wendesday",
"Thursday",
"Friday",
"Saturday"
][
new Date().getDay()
])
上面将根据索引号new Date.getDay products指定一个命名的日期。要解决这个问题,您需要创建一个数组,按顺序包含日期的名称。在数组的索引端,将new Date.getDay放入数组的索引中,并应返回一个结果
console.log([
"Sunday",
"Monday",
"Tuesday",
"Wendesday",
"Thursday",
"Friday",
"Saturday"
][
new Date().getDay()
])
上面将根据索引号new Date.getDay products指定一个命名的日期。更新:
在MDN中,日期构造函数语法包括
new Date()
new Date(value)
new Date(dateString)
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]])
2021-02-04是一个日期字符串,由MDN定义。该引用广泛分布于互联网^v^
由于浏览器差异和不一致,强烈建议使用date构造函数和date.parse解析日期字符串,因为它们的工作方式相同
仅按惯例支持RFC 2822格式字符串。
对ISO 8601格式的支持不同之处在于,仅日期字符串(例如1970-01-01)被视为UTC,而不是本地字符串
简言之,有许多国际标准在dateString模式下产生冲突。不同的浏览器可能使用不同的标准,即浏览器的差异。这就是为什么我在中运行你的代码,输出是4,这与你的不同
还有一种情况与您的情况相同,输出比正确结果小1倍
如果你在谷歌上搜索,你会发现很多人被困。我认为这个答案应该与其他答案一起归档,比如:
...
因此,我强烈建议不要使用dateString来构造日期。只需使用新的日期2021、02、04,您就会得到正确的答案。更新:
在MDN中,日期构造函数语法包括
new Date()
new Date(value)
new Date(dateString)
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]])
2021-02-04是一个日期字符串,由MDN定义。该引用广泛分布于互联网^v^
由于浏览器差异和不一致,强烈建议使用date构造函数和date.parse解析日期字符串,因为它们的工作方式相同
仅按惯例支持RFC 2822格式字符串。
对ISO 8601格式的支持不同之处在于,仅日期字符串(例如1970-01-01)被视为UTC,而不是本地字符串
简言之,有许多国际标准在dateString模式下产生冲突。不同的浏览器可能使用不同的标准,即浏览器的差异。这就是为什么我在中运行你的代码,输出是4,这与你的不同
还有一种情况与您的情况相同,输出比正确结果小1倍
如果你在谷歌上搜索,你会发现很多人被困。我认为这个答案应该与其他答案一起归档,比如:
...
因此,我强烈建议不要使用dateString来构造日期。只需使用新的日期2021、02、04,您就会得到正确的答案。工作正常。加一个……很奇怪,我得到了同样的东西,应该是4。我用momentjs运行它,它返回4。是的@CaioMar使用momentjs返回4。谢谢一切正常。加一个……很奇怪,我得到了同样的东西,应该是4。我用momentjs运行它,它返回4。是的@CaioMar使用momentjs返回4。谢谢如果数字使日期小于1,则将数组的第一个索引移动到最后一个,直到满足您的论证。如果数字使日期小于1,则将数组的第一个索引移动到最后一个,直到满足您的论证。我不知道为什么,但我在同一MDN链接中得到3作为输出。您可以添加屏幕截图吗?或者提供浏览器版本、代码编辑器版本、编译器版本等。需要更多信息。这是截图->很有趣,还有其他人也遇到过类似的问题。墨西哥,你现在住在哪个国家?我来自阿根廷。我认为searchDate的格式是个问题。因为如果格式为2021-02-04T00:00:00,则输出为4。我不知道为什么,但我在同一个MDN链接中得到3作为输出。你能添加一个屏幕截图吗?或者提供浏览器版本、代码编辑器版本、编译器版本等。需要更多信息。这是截图->很有趣,还有其他人也遇到过类似的问题。墨西哥,你现在住在哪个国家?我来自阿根廷。我认为searchDate的格式是个问题。因为如果格式为2021-02-04T00:00:00,则输出为4。