我正在使用此脚本:http://www.javascriptkit.com/script/script2/dyndateselector.shtml
如果您尝试使用,并进入4月,6月,9月或11月的任何一个,您会注意到星期几列不正确.这是一个不正确的数据列表(x开始的东西显示在下个月.)
错误的月份:4月/ 4月(周日而不是周五开始)5月周日开始
6月6日(星期五而不是星期三)7月星期五开始
9月9日(星期六而不是星期四)10月星期六开始
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>
Run Code Online (Sandbox Code Playgroud)
这将创建一个警告,其中包含消息"5",表示星期五(5 + 1 = 6,星期五是一周的第6天),而实际上星期三是本周的开始.
这实际上非常有趣,因为我猜测明天您的原始代码将再次按照您的需要工作.
我认为正在发生的是你正在创建一个新的Date,并将自动初始化到今天(5月31日).然后你将月份设置为6月,你基本上将它设为6月31日.此日期不存在,因此javascript会将其变为7月1日.最后你设置了日期,但由于你的月份不再是你想要的,结果将是错误的.