Ich muss den Namen des Tages mit einem bestimmten Datum (wie "23.05.2014") anzeigen, das ich von einem Drittanbieter erhalte.
Ich habe es versucht Date , aber ich bekomme nur das Datum.
Was ist der richtige Weg, um den Namen des Tages zu erhalten?
Ich muss den Namen des Tages mit einem bestimmten Datum (wie "23.05.2014") anzeigen, das ich von einem Drittanbieter erhalte.
Ich habe es versucht Date , aber ich bekomme nur das Datum.
Was ist der richtige Weg, um den Namen des Tages zu erhalten?
Antworten:
Sie können die Date.getDay()Methode verwenden, die für Sonntag 0 und für Samstag bis 6 zurückgibt. Sie können also einfach ein Array mit dem Namen für die Tagesnamen erstellen:
var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var d = new Date(dateString);
var dayName = days[d.getDay()];
Hier dateStringist die Zeichenfolge, die Sie von der Drittanbieter-API erhalten haben.
Wenn Sie die ersten drei Buchstaben des Tagesnamens verwenden möchten, können Sie alternativ Datedie integrierte toStringMethode des Objekts verwenden:
var d = new Date(dateString);
var dayName = d.toString().split(' ')[0];
Dies wird das erste Wort in der d.toString()Ausgabe sein, das der 3-Buchstaben-Tagesname ist.
Ahum, drei Jahre später ...
Warum verwendet niemand die Methoden der Standard-Javascript-Date-Klasse (außer Callum Linington)?
Abrufen des Tagesnamens von einem Datum :
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.
Alle Wochentage in einem Array abrufen:
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.
Verwenden Sie für amerikanische Daten 'en-US' als Gebietsschema.
let weekday = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][new Date().getDay()]
var days = [
"Sunday",
"Monday",
"...", //etc
"Saturday"
];
console.log(days[new Date().getDay()]);
Lesen Sie einfach das Date-Objekt im JavaScript-Handbuch
Um andere Dinge mit Datum zu tun, wie z. B. eine lesbare Zeichenfolge daraus zu erhalten, verwende ich:
var d = new Date();
d.toLocaleString();
Wenn Sie nur Uhrzeit oder Datum möchten, verwenden Sie:
d.toLocaleTimeString();
d.toLocaleDateString();
Sie können Daten entweder folgendermaßen analysieren:
var d = new Date(dateToParse);
oder
var d = Date.parse(dateToParse);
days[new Date().getDay()]
Schau dir das an :
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일 목요일
Quelle: Mozilla Doc
Einfachster und einfachster Weg:
var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
var dayName = days[new Date().getDay()];
Versuchen Sie es mit diesem Code:
var event = new Date();
var options = { weekday: 'long' };
console.log(event.toLocaleDateString('en-US', options));
Dadurch erhalten Sie den Tagesnamen im Zeichenfolgenformat.
Ich bin kein Fan von überkomplizierten Lösungen, wenn jemand anderes etwas Besseres findet, lassen Sie es uns bitte wissen :)
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>
Lösung Nr.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);
Lösung Nr. 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);
Kürzester Liner
Ändern Sie den UTC-Tag von 6 auf 5, wenn Array ab Sonntag beginnen soll.
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'));
Verwenden Sie es einfach:
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;
}
Informationen zu Formaten finden Sie hier. Documentation DateTimeFormat
Verwenden Sie stattdessen nicht ein Array, sondern ein Array. Dies ist nur eine alternative Methode.
http://www.w3schools.com/jsref/jsref_getday.asp
var date = new Date();
var day = date.getDay();
Sie sollten wirklich Google verwenden, bevor Sie hier posten.
Da andere Leute die Array-Methode gepostet haben, zeige ich Ihnen einen alternativen Weg mit einer switch-Anweisung.
switch(day) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
... rest of cases
default:
// do something
break;
}
Das obige funktioniert jedoch, das Array ist die bessere Alternative. Sie können auch if()Anweisungen verwenden, aber eine switch-Anweisung wäre viel sauberer als mehrere if's.
switch? Warum würden Sie eine switchanstelle einer einfachen verwenden Array? Ich meine, ich denke, es ist eine Alternative zu den anderen Antworten ... Aber heilige Schreibzeit, Batman ...: /
getDay()an, um die Tagesnummer (0-6, 0 == Sonntag) zu erhalten, und verwenden Sie dann ein Array der Tagesnamen, um die Nummer dem Namen zuzuordnen.