Javascript返回错误的一天

时间:2016-06-01 07:36:42

标签: javascript date

我必须写函数来确定特定日期的哪一天。我写了下面的代码,但它在错误的一天返回了99%的情况。你能解释一下为什么吗?

var day = 1, month = 1, year = 2016;

function whatDay(day, month, year) {
    var myDate = new Date();
    myDate.setFullYear(year);
    myDate.setMonth(month);
    myDate.setDate(day);

    console.log( myDate.getDay() );
}

whatDay(day, month, year);

3 个答案:

答案 0 :(得分:3)

我猜你对getDay如何运作感到困惑。请参阅文档:

  

getDay()方法返回指定日期的星期几   根据当地时间,其中0代表星期日

所以这一天从代表星期日的0指数开始。 1作为星期一,依此类推。基于当地时间。

只是补充一下,同样地,月份也从0开始编号。所以0表示1月份,依此类推。

答案 1 :(得分:3)

  

特定日期的哪一天

好像你正在寻找像星期日,星期一那样的工作日。等等。+

如果是这样,那么以下代码段可能很有用

var day = 1, month = 1, year = 2016;

function whatDay(day, month, year) {
    var myDate = new Date();
    myDate.setFullYear(year);
    myDate.setMonth(month);
    myDate.setDate(day);

   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";

   var n = weekday[myDate.getDay()]
   console.log(n); //Monday
}

whatDay(day, month, year);

jsfiddle

答案 2 :(得分:0)

问题解决了。 我知道getDay()是如何工作的,但我不知道从0到11的数月。感谢@Amadan