Date.getDay () 자바 스크립트가 잘못된 날을 반환합니다.


146

안녕하세요, 저는 자바 스크립트를 처음 사용합니다.

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);하면 올바른 정보를 반환합니다.


답변:


329

.getDate대신에 사용하십시오 .getDay.

getDay에 의해 리턴되는 값은 요일에 해당하는 정수입니다. 0은 일요일, 1은 월요일, 2는 화요일 등입니다.


154
이 함수의 디자이너가 getDayOf Week라고 부르지 않았다는 것은 정말 바보입니다. 아니, 그건 너무 분명했을 것입니다.
안드로이드 Dev

41
@AndroidDev 동의합니다! 또한 .getDate하루가 아닌 전체 날짜가 반환 될 것으로 예상됩니다.

47
getMonth 함수는 0에서 11 사이의 정수를 반환하며 1 월은 0, 12 월은 11을 반환합니다. 그들은저기서 무거운 물건을 흡연해야합니다
taralex

13
getYear () 실제로 1 년에서 1900을 뺀 값도 있습니다.
Guilhem Fry

완전히 부적합한 디자인 ~Date.getYear() okay, Date.getMonth() okay, Date.getDate() what?
Eddie B



5

나는 비슷한 문제가 있었다. date.getMonth()에서 범위의 색인을 반환합니다 0 to 11. 1 월은 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 ... 그것은 나에 대한 마이너스 하나에 대한 해결책입니다 ... 감사합니다.
juanram0n

1
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);
 });

1

이제부터는 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));

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.