在输入日期字段星期显示不正确的天(Incorrect day of week showing in

2019-10-18 07:34发布

我有一个网站,该网站没有被“我”遵守游戏规则上的一些代码。

编码:

<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周五5日返回2013年7月5日,但周一2013年7月8日它实际上返回连续2天从7月1日到下面的7月2013返回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

其中显示了天一个很奇怪的顺序

周日,周一,周二, 周三 ,周四,周五,周六,周日, 周一 ,周二等等。

我已经很明显做错事,但对我的生活,我不能工作了。

如果任何人都可以在正确的方向指向我,我将不胜感激:)

Answer 1:

您正在创建错误的日期变量。 看看构造函数(从语法DOC ):

new Date();
new Date(value);
new Date(dateString);
new Date(year, month, day [hour, minute, second, millisecond]);

请注意,该月为0,在你的代码11.所以之间的值:

var g=new Date(y, m - 1, d);


文章来源: Incorrect day of week showing in input date field