2012-11-13 13 views
77

Ciao io sono nuovo in javascript ho tale codice javascriptDate.getDay() ritorna javascript giorno sbagliato

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 = "1991/11/11"

quando chiamo alert (giorno); mi mostra 3;
quando chiamo alert (d); mi viene restituito informazioni corrette

+0

[Era lunedi ...] (http://www.dayoftheweek.org/?m = Novembre & d = 11 & y = 1991 & go = Vai) – gdoron

risposta

181

utilizzare .getDate anziché .getDay.

Il valore restituito da getDay è un numero intero corrispondente al giorno della settimana: 0 per domenica, 1 per lunedì, 2 per martedì e così via.

+0

grazie per l'aiuto) –

+78

Davvero stupido che il progettista di questa funzione non lo chiamasse getDayOf Week. No, sarebbe stato troppo ovvio. – AndroidDev

+16

@AndroidDev Sono d'accordo! Inoltre con '.getDate' ci si aspetterebbe di restituire la data completa, non solo il giorno. –

8

getDay() vi darà il giorno della settimana. Stai cercando getDate().

3

Ho avuto un problema simile. date.getMonth() restituisce un indice compreso tra 0 to 11. Gennaio è 0. Se si crea un nuovo oggetto date() e si desidera ottenere informazioni su una data del costo non quella corrente, è necessario ridurre solo il mese entro il 1.

Ti piace questa:

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

Awesome Sven ... questa è la soluzione per il mio, meno uno alla falena ... grazie. – Juanra

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

e chiamare con questo codice

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