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í
dateString
está 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
Date
integrado 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 = tuesday
Para 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 enswitch
lugar de un simpleArray
? Quiero decir, supongo que es una alternativa a las otras respuestas ... Pero santo tiempo de escritura, Batman ...: /