2012-03-13 28 views
14

Dado dayNumber es de 0..6 que representa Monday..Sunday respectivamente.¿Cómo obtener el día de la semana del número del día en Javascript?

¿Se pueden utilizar los objetos Date/String para obtener el día de la semana en dayNumber?

+0

posible duplicado de [cómo obtener el día de una fecha determinada usando javascript] (http://stackoverflow.com/questions/495644/how-to-get-the-day-from-a-particular-date- using-javascript) – bernie

+0

[MDN Date()] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date) – epascarello

+0

posible duplicado de [Javascript: cómo obtener el día de la semana y el mes de ellos ear?] (http://stackoverflow.com/questions/4822852/javascript-how-to-get-the-day-of-week-and-the-month-of-the-year) –

Respuesta

22

Esto le dará un día en base al índice de pasar:

var weekday=new Array(7); 
weekday[0]="Monday"; 
weekday[1]="Tuesday"; 
weekday[2]="Wednesday"; 
weekday[3]="Thursday"; 
weekday[4]="Friday"; 
weekday[5]="Saturday"; 
weekday[6]="Sunday"; 
console.log("Today is " + weekday[3]); 

Salidas "Hoy es jueves"

Puede alse obtener el índice de día actual de JavaScript con getDay() (sin embargo en este método, domingo es 0, lunes es 1, etc.):

var d=new Date(); 
console.log(d.getDay()); 

Salidas 1 cuando es lunes.

3
/** 
* I convert a day string to an number. 
* 
* @method dayOfWeekAsInteger 
* @param {String} day 
* @return {Number} Returns day as number 
*/ 
function dayOfWeekAsInteger(day) { 
    return ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"].indexOf(day); 
} 
15

Este código es una versión modificada de lo que se da arriba. Devuelve la cadena que representa el día en lugar

/** 
* Converts a day number to a string. 
* 
* @method dayOfWeekAsString 
* @param {Number} dayIndex 
* @return {Number} Returns day as number 
*/ 
function dayOfWeekAsString(dayIndex) { 
    return ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"][dayIndex]; 
} 

Por ejemplo

dayOfWeekAsString(0) returns "Monday" 
5

Esto agregará una función getDayOfWeek() como un prototipo para la clase Date JavaScript.

Date.prototype.getDayOfWeek = function(){ 
    return ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][ this.getDay() ]; 
}; 
27

Una manera mucho más elegante que le permite mostrar también el día de la semana de acuerdo al lugar si decide está empezando disponible la última versión de los scripts ECMA y se está ejecutando en todos los navegadores más recientes y Node.js:

console.log(new Date().toLocaleString('en-us', { weekday: 'long' })); 
+0

Sólo una advertencia para cualquier persona usando esto, funciona bien, pero esta es una forma muy pesada de conseguir esto. Úselo únicamente cuando tenga pocas fechas que necesite convertir y no en una aplicación de nodo side del lado servidor. Si ejecuta esto en fechas de 10k, lleva mucho tiempo y hay una pérdida de memoria. – Omer

+0

@omer, ¿abriste un problema con el equipo del nodo? Creo que todos podemos beneficiarnos de esto trabajando más rápido y sin pérdidas de memoria. –

+1

No, aún no, pero lo abriré ahora, buena idea. Logré reproducirlo con un simple ciclo while que se ejecuta 10 veces. No estoy seguro si es realmente un error o simplemente que esta función es pesada en recursos para este caso de uso específico. – Omer

Cuestiones relacionadas