Necesito mostrar el nombre del día dado una fecha (como "05/23/2014") que obtengo de un tercero.
He intentado usar Date, pero solo obtengo la fecha.
¿Cuál es la forma correcta de obtener el nombre del día?
javascript
jquery
DhrubaJyoti
fuente
fuente

getDay()para obtener el número del día (0-6, 0 == domingo), y luego use una matriz de los nombres de los días para asignar el número al nombre.Respuestas:
Puede usar el
Date.getDay()método, que devuelve 0 para el domingo, hasta 6 para el sábado. Entonces, podría simplemente crear una matriz con el nombre de los nombres de los días:var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; var d = new Date(dateString); var dayName = days[d.getDay()];Aquí
dateStringestá la cadena que recibió de la API de terceros.Alternativamente, si desea las primeras 3 letras del nombre del día, puede usar el método
Dateintegrado del objetotoString:var d = new Date(dateString); var dayName = d.toString().split(' ')[0];Eso tomará la primera palabra en la
d.toString()salida, que será el nombre del día de 3 letras.fuente
Ahum, tres años después ...
¿Por qué nadie usa los métodos proporcionados por la clase Date estándar de javascript (excepto Callum Linington)?
Ver https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
Obtener el nombre del día a partir de una fecha :
function getDayName(dateStr, locale) { var date = new Date(dateStr); return date.toLocaleDateString(locale, { weekday: 'long' }); } var dateStr = '05/23/2014'; var day = getDayName(dateStr, "nl-NL"); // Gives back 'Vrijdag' which is Dutch for Friday.Obtener todos los días de la semana en una matriz:
function getWeekDays(locale) { var baseDate = new Date(Date.UTC(2017, 0, 2)); // just a Monday var weekDays = []; for(i = 0; i < 7; i++) { weekDays.push(baseDate.toLocaleDateString(locale, { weekday: 'long' })); baseDate.setDate(baseDate.getDate() + 1); } return weekDays; } var weekDays = getWeekDays('nl-NL'); // Gives back { 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag', 'zondag'} which are the days of the week in Dutch.Para las fechas estadounidenses, use 'en-US' como configuración regional.
fuente
let weekday = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][new Date().getDay()]fuente
use el método Date.toLocaleString ():
new Date(dateString).toLocaleString('en-us', {weekday:'long'})fuente
var days = [ "Sunday", "Monday", "...", //etc "Saturday" ]; console.log(days[new Date().getDay()]);Simple, lea el objeto Date en el manual de JavaScript
Para hacer otras cosas con la fecha, como obtener una cadena legible, uso:
var d = new Date(); d.toLocaleString();Si solo desea la hora o la fecha, use:
Puede analizar las fechas haciendo lo siguiente:
var d = new Date(dateToParse);o
var d = Date.parse(dateToParse);fuente
days[new Date().getDay()]Mira esto :
var event = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; console.log(event.toLocaleDateString('de-DE', options)); // expected output: Donnerstag, 20. Dezember 2012 console.log(event.toLocaleDateString('ar-EG', options)); // expected output: الخميس، ٢٠ ديسمبر، ٢٠١٢ console.log(event.toLocaleDateString('ko-KR', options)); // expected output: 2012년 12월 20일 목요일Fuente: Mozilla Doc
fuente
La forma más fácil y sencilla:
var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; var dayName = days[new Date().getDay()];fuente
No soy fanático de las soluciones demasiado complicadas si a alguien más se le ocurre algo mejor, háganoslo saber :)
any-name.js var today = new Date().toLocaleDateString(undefined, { day: '2-digit', month: '2-digit', year: 'numeric', weekday: 'long' });any-name.html <script> document.write(today); </script>fuente
puedes usar un objeto
var days = { 'Mon': 'Monday', 'etc..': 'etc..', 'Fri': 'Friday' } var date = new Date().toString().split(' ')[0]; //get day abreviation first console.log(days[date]);fuente
Intente usar este código:
var event = new Date(); var options = { weekday: 'long' }; console.log(event.toLocaleDateString('en-US', options));esto le dará el nombre del día en formato de cadena.
fuente
Solución No.1
var today = new Date(); var day = today.getDay(); var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; var dayname = days[day]; document.write(dayname);Solución no 2
var today = new Date(); var day = today.getDay(); switch(day){ case 0: day = "Sunday"; break; case 1: day = "Monday"; break; case 2: day ="Tuesday"; break; case 3: day = "Wednesday"; break; case 4: day = "Thrusday"; break; case 5: day = "Friday"; break; case 6: day = "Saturday"; break; } document.write(day);fuente
Un trazador de líneas más corto
Cambie el día UTC de 6 a 5 si desea que Array comience desde el domingo.
const getWeekDays = (locale) => [...Array(7).keys()].map((v)=>new Date(Date.UTC(1970, 0, 6+v)).toLocaleDateString(locale, { weekday: 'long' })); console.log(getWeekDays('de-DE'));fuente
Para obtener el día de una fecha determinada, simplemente pase la fecha a un nuevo objeto Date:
let date = new Date("01/05/2020"); let day = date.toLocaleString('en-us', {weekday: 'long'}); console.log(day); // expected result = tuesdayPara leer más, vaya a mdn-date.prototype.toLocaleString () ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString )
fuente
Solo utilícelo:
function getWeekDayNames(format = 'short', locale = 'ru') { const names = []; const date = new Date('2020-05-24'); let days = 7; while (days !== 0) { date.setDate(date.getDate() + 1); names.push(date.toLocaleDateString(locale, { weekday: format })); days--; } return names; }Acerca de los formatos que puede leer aquí Documentación DateTimeFormat
fuente
Solución de una línea:
const day = ["sunday","monday","tuesday","wednesday","thursday","friday","saturday"][new Date().getDay()]fuente
No es el mejor método, use una matriz en su lugar. Este es solo un método alternativo.
http://www.w3schools.com/jsref/jsref_getday.asp
var date = new Date(); var day = date.getDay();Realmente deberías usar Google antes de publicar aquí.
Dado que otras personas publicaron el método de matriz, le mostraré una forma alternativa utilizando una declaración de cambio.
switch(day) { case 0: day = "Sunday"; break; case 1: day = "Monday"; break; ... rest of cases default: // do something break; }Lo anterior funciona, sin embargo, la matriz es la mejor alternativa. También puede usar
if()declaraciones, sin embargo, una declaración de cambio sería mucho más limpia que varios if.fuente
switch¿ A ? ¿Por qué usarías un enswitchlugar de un simpleArray? Quiero decir, supongo que es una alternativa a las otras respuestas ... Pero santo tiempo de escritura, Batman ...: /