GetDay () javascript 返回错误的日期

嗨,我是 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);它是返回我正确的信息。

117713 次浏览

使用 .getDate代替 .getDay

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

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()];
}
function formatDate(date, callback)
{
var weekday = new Array("Sunday", "Monday", "Tuesday", "Wednesday",     "Thursday", "Friday", "Saturday");
var day = weekday[date.getDay()];
console.log('day',day);
var d = date.getDate();
var hours = date.getHours();
ampmSwitch = (hours > 12) ? "PM" : "AM";
if (hours > 12) {
hours -= 12;


}
else if (hours === 0) {
hours = 12;
}
var m = date.getMinutes();
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var month = months[date.getMonth()];
var year = date.getFullYear();
newdate = day + ', ' + month + ' ' + d + ',' + year + ' at ' + hours + ":" + m + " " + ampmSwitch
callback(newdate)
}

用这个密码打电话

date="Fri Aug 26 2016 18:06:01 GMT+0530 (India Standard Time)"
formatDate(date,function(result){
console.log('Date=',result);
});

从现在开始,您可能希望对 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));

当您使用函数时。GetDay () ,这个函数考虑月份的数字从0开始,而不是从1开始,那么如果使用 new Date (2021-11-04) ,则。GetDay ()函数将考虑十二月的第4天而不是十一月..。

然后,要获得11月的 de day 4,需要将“2021-10-04”传递给 Date ()类。

这也可能是所使用的技术和浏览器 ES5兼容性的问题。

我在开发本地反应应用程序时遇到了这样的问题。

return `${date.getDay()} ${month}, ${date.getFullYear()}`;

return `${date.getDate()} ${month}, ${date.getFullYear()}`;