Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript日期getDay()格式问题_Javascript_Date - Fatal编程技术网

Javascript日期getDay()格式问题

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格式的情况下,获取星期几值的正确方法是什么 提前谢谢 要解决这个问题,您需要创建一个数

我遇到了一个问题,JS试图获取特定日期的星期几:

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。