Vyhledávání na webu

Date.getDay() v JavaScriptu vrací špatný den


Mám takový javascriptový kód

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

vezměte například: DATE.value="11/11/1991"

když zavolám alert(day);, ukáže mi 3;
když zavolám alert(d);, vrátí mi to správné informace.

Odpověď č. 1

použijte .getDate místo .getDay.

Hodnota vrácená funkcí getDay je celé číslo odpovídající dni v týdnu: 0 pro neděli, 1 pro pondělí, 2 pro úterý a podobně.

Odpověď č. 2

getDay() vrací den v týdnu. Můžete však použít metodu getDate().

https://developer.mozilla.org/cs/docs/JavaScript/Reference/Global_Objects/Date/getDay

Odpověď č. 3

getDay() vám dá den v týdnu. Hledáte getDate().

Odpověď č. 4

Měl jsem podobný problém. date.getMonth() vrací index v rozmezí od 0 do 11. Leden je 0. Pokud vytvoříte nový objekt date() a chcete získat informace o vlastním datu, nikoliv o aktuálním, musíte snížit pouze měsíc o 1.

Takto:

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()];
}

Související články