Javascript getDay返回4月,6月,9月,11月的错误值

前端之家收集整理的这篇文章主要介绍了Javascript getDay返回4月,6月,9月,11月的错误值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在这里使用这个脚本: http://www.javascriptkit.com/script/script2/dyndateselector.shtml

如果您尝试了,并且去了4月,6月,9月或11月的任何一个,您会注意到星期几列不正确.这是一个不正确的数据列表(x开始的东西显示在下个月.)

错误月份:
4月4日(周日而不是周五开始)
可能从周日开始

6月6日(周五而不是周三开始)
七月从星期五开始

9月9日(星期六而不是星期四开始)
十月从星期六开始

11月11日(周四而非周二开始)
12月开始周四

您会注意到每个错误的月份都是从下个月的某一天开始,但其他所有月份似乎都是正确的.

我在这个问题上找不到任何东西.有人能帮忙吗?可以在此处找到实际的Javascript,并且getDay()方法出现在第125:http://pastebin.com/0zuBYrzv

我已经在Firefox和Chrome中进行了测试.

这里有一些非常简单的代码来演示这个问题:

<script>
var d = new Date();
d.setMonth(5);
d.setFullYear(2011);
d.setDate(1);
alert(d.getDay());
</script>

这将创建一个警告,其中包含消息“5”,表示星期五(5 1 = 6,星期五是一周的第6天),而实际上星期三是本周的开始.

解决方法

这实际上非常有趣,因为我猜测明天你的原始代码会再次按你的需要工作.

我认为正在发生的是你正在创建一个新的日期,并将自动初始化到今天(5月31日).然后你将月份设置为6月,你基本上将它设为6月31日.此日期不存在,因此javascript会将其变为7月1日.最后你设置了日期,但由于你的月份不再是你想要的,结果将是错误的.

猜你在找的JavaScript相关文章