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?
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?
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 objeto toString:
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.
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)?
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.
let weekday = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][new Date().getDay()]
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:
d.toLocaleTimeString();
d.toLocaleDateString();
Puede analizar las fechas haciendo lo siguiente:
var d = new Date(dateToParse);
o
var d = Date.parse(dateToParse);
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
La forma más fácil y sencilla:
var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
var dayName = days[new Date().getDay()];
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>
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.
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);
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'));
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 )
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
Solución de una línea:
const day = ["sunday","monday","tuesday","wednesday","thursday","friday","saturday"][new Date().getDay()]
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.
switch¿ A ? ¿Por qué usarías un en switchlugar de un simple Array? Quiero decir, supongo que es una alternativa a las otras respuestas ... Pero santo tiempo de escritura, Batman ...: /
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.