Date.getDay() javascript 返回错误的日期

IT技术 javascript date
2021-02-27 02:27:11

嗨,我是 javascript 新手,我有这样的 javascript 代码

alert(DATE.value);
var d = new Date(DATE.value);
var year = d.getFullYear();
var month = d.getMonth();
var day = d.getDay();
alert(month);
alert(day);
if(2012 < year < 1971 | 1 > month+1 > 12 | 0 >day > 31){
    alert(errorDate);
    DATE.focus();
    return false;
}

以: DATE.value = "11/11/1991"

当我打电话给alert(day);时,它会显示给我3
当我打电话给alert(d);时,它会返回正确的信息。

6个回答

使用.getDate代替.getDay.

getDay 返回的值是一个与星期几对应的整数:0 代表星期日,1 代表星期一,2 代表星期二,依此类推。

@AndroidDev 我同意!此外,.getDate人们希望返回完整的日期,而不仅仅是一天。
2021-04-17 02:27:11
更多信息:函数 getMonth 返回一个从 0 到 11 的整数,0 表示一月,11 表示十二月。他们一定在那边抽了些重烟
2021-04-27 02:27:11
这个函数的设计者没有把它叫做 getDayOf Week 真是愚蠢。不,那太明显了。
2021-04-28 02:27:11
完全不协调的设计~ Date.getYear() okay, Date.getMonth() okay, Date.getDate() what?
2021-05-07 02:27:11
这里还有更多: getYear() 实际上是年份减去 1900 !
2021-05-10 02:27:11

getDay()返回星期几。但是,您可以使用该getDate()方法。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getDay

getDay()会给你星期几。您正在寻找getDate().

我有一个类似的问题。date.getMonth()返回范围从 的索引0 to 11一月是0如果您创建了一个新的对象,date()并且想要获取有关服装日期的信息而不是当前日期,则您只需将月份减少1.

像这样

function getDayName () {
var year = 2016;
var month = 4;
var day = 11;

var date = new Date(year, month-1, day);
var weekday = new Array("sunday", "monday", "tuesday", "wednesday",
                    "thursday", "friday", "saturday");

return weekday[date.getDay()];
}
很棒的 Sven ......这是我的解决方案,在蛾身上减去一个......谢谢。
2021-04-29 02:27:11

从现在开始,您可能希望对 Date 对象使用以下函数:

    function dayOf(date)
    {
        return date.getDate();
    }

    function monthOf(date)
    {
        return date.getMonth() + 1;
    }

    function yearOf(date)
    {
        return date.getYear() + 1900;
    }

    function weekDayOf(date)
    {
        return date.getDay() + 1;
    }
    
    var date = new Date("5/15/2020");
    console.log("Day: " + dayOf(date));
    console.log("Month: " + monthOf(date));
    console.log("Year: " + yearOf(date));