注册 登录
编程论坛 JavaScript论坛

一个很诡异的问题,请高手请指点

bftony 发布于 2013-07-31 13:08, 577 次点击
            var nDate = new Date();
            nDate.setYear(2013);
            nDate.setMonth(5);
            nDate.setDate(1);

            2013年6月1日,应该是星期六,
            可下面的语句,老弹出式 ‘1’:
            alert(nDate.getDay());

            这是为什么啊?很奇快
4 回复
#2
love云彩2013-07-31 15:45
不太清楚楼主的提问
#3
bftony2013-07-31 20:25
2013年6月1日,应该是星期六,怎么javascript的getDay()返回是星期一。难道是我的机器有毛病
#4
java小蚂蚁2013-08-02 16:19
这个getDate得到的值不是星期几,而是当月的第几天,你理解错了。
#5
hjxlj2013-08-02 22:01
getDay()
函数虽然是返回与星期有关的信息,但它并不直接返回星期几给你。它只是返回一个数值来表示星期几,比如它返回0表示星期日,返回1表示星期一,返回2表示星期二等等,以此类推。因此,为了表示真正的星期数,我们还得将该函数返回的值处理一番才行。
比如下面这三句代码,就能够明确地告诉你今天是星期几。
var weekday=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
var dttoday=new Date();
alert(weekday[dttoday.getDay()]);
正如你所看到的,代码中先定义了一个保存有星期日到星期六的数组,然后根据getDay()返回的数值,来从星期数组中返回相应的星期数。
将你上面你自己的代码改进之后,应该是这样子:
程序代码:
var weekday=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
var nDate = new Date();
nDate.setYear(2013);
nDate.setMonth(5);
nDate.setDate(1);
alert(weekday[nDate.getDay()]);





[ 本帖最后由 hjxlj 于 2013-8-2 22:08 编辑 ]
1