我正在使用位于以下位置的脚本:http://www.javascriptkit.com/script/script2/dyndateselector.shtml
如果您尝试它,并转到4月、6月、9月或11月中的任何一个,您会注意到星期几列是错误的。这是一个不正确的数据列表(x从y开始,显示下个月的数据)。
被窃听的月份: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>这将创建一个带有消息"5“的警报,意思是星期五(5+1 = 6,星期五是一周的第六天),而实际上星期三是一周的开始。
发布于 2011-06-01 03:38:09
这实际上非常有趣,因为我猜明天你的原始代码将再次按你想要的那样工作。
我认为正在发生的事情是你正在创建一个新的Date,它将自动初始化到今天(5月31日)。然后你把月份设置为六月,基本上就是六月三十一号。这个日期不存在,所以javascript会把它变成7月1日。最后,您设置了日期,但是由于您的月份不再是您想要的日期,因此结果将是错误的。
发布于 2011-06-01 02:43:55
看起来0是1月,11是12月。
发布于 2011-06-01 03:04:00
显然,JavaScript不喜欢我设置月份、全年,然后是天。我必须做的是将它们都设置在一个函数中,如下所示:
<script>
var d = new Date();
d.setFullYear(2011, 5, 1);
alert(d.getDay());
</script>https://stackoverflow.com/questions/6192012
复制相似问题