【发布时间】:2013-07-01 04:22:08
【问题描述】:
我的网站上有一些代码不符合“我的”规则。
代码:
<script>
function do_date()
{
v=document.getElementById('date').value;
n=v.split('-');
y=n[0];
m=n[1];
d=n[2];
var g=new Date(d,m,y);
var weekday=new Array(7);
weekday[0]="Sunday";
weekday[1]="Monday";
weekday[2]="Tuesday";
weekday[3]="Wednesday";
weekday[4]="Thursday";
weekday[5]="Friday";
weekday[6]="Saturday";
booking_date=d+'/'+m+'/'+y;
bd=y+''+m+''+d;
wd=weekday[g.getDay()]
document.getElementById('viewdate').innerHTML=wd+' '+booking_date;
}
</script>
<input type="date" id="date" name="date" value="" onchange="do_date()" style="width:150px;" />
变量 wd 为 2013 年 7 月 5 日星期五返回 5,但在 2013 年 7 月 8 日星期一,它实际上连续返回 2 天,从 2013 年 7 月 1 日到 2013 年 7 月 31 日返回以下:
g.getDay() log=0,1,2,4,5,6,0,2,3,5,0,1,2,3,5,6,0,1,3,4,5,0,2,3,4,6,0,1,2
以非常奇怪的顺序显示日期
周日、周一、周二、周三、周四、周五、周六、周日、周一、周二等
我显然做错了什么,但为了我的生活,我无法解决。
如果有人能指出我正确的方向,我将不胜感激:)
【问题讨论】:
-
添加日志以找出 g.getDay() 在您得到错误结果的日子里返回的内容。
-
没有真正丢失的日子,只是被跳过了,你可以从问题中的逗号分隔数字列表中看到。
-
日期构造函数应该是
new Date(y,m,d)
标签: javascript date input