我正在使用以下脚本:http://www.javascriptkit.com/script/script2/dyndateselector.shtml

如果您尝试使用它,然后转到4月,6月,9月或11月中的任何一个,则您会发现“星期几”列不正确。这是不正确数据的列表(x开始y的东西显示在下个月。)

问题月份:
4/4月(从星期日开始,而不是星期五开始)
可能从星期日开始

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

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

11月11日(从周四开始,而不是周二开始)
十二月从星期四开始

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

我找不到关于这个问题的任何东西。有人能帮忙吗?仅在此处可以找到实际的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>

这将创建一 strip 有消息“5”的警报,表示星期五(5 + 1 = 6,星期五是一周的第六天),而实际上星期三是一周的开始。

最佳答案

这实际上非常有趣,因为我猜测明天您的原始代码将再次按需运行。

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

08-05 21:36