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?
javascript
jquery
DhrubaJyoti
quelle
quelle
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.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
dateString
ist 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
Date
die integriertetoString
Methode 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.quelle
Ahum, drei Jahre später ...
Warum verwendet niemand die Methoden der Standard-Javascript-Date-Klasse (außer Callum Linington)?
Siehe https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
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.
quelle
let weekday = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][new Date().getDay()]
quelle
Verwenden Sie die Methode Date.toLocaleString ():
new Date(dateString).toLocaleString('en-us', {weekday:'long'})
quelle
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:
Sie können Daten entweder folgendermaßen analysieren:
var d = new Date(dateToParse);
oder
var d = Date.parse(dateToParse);
quelle
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
quelle
Einfachster und einfachster Weg:
var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; var dayName = days[new Date().getDay()];
quelle
Sie können ein Objekt verwenden
var days = { 'Mon': 'Monday', 'etc..': 'etc..', 'Fri': 'Friday' } var date = new Date().toString().split(' ')[0]; //get day abreviation first console.log(days[date]);
quelle
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.
quelle
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>
quelle
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);
quelle
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'));
quelle
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
quelle
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.quelle
switch
? Warum würden Sie eineswitch
anstelle einer einfachen verwendenArray
? Ich meine, ich denke, es ist eine Alternative zu den anderen Antworten ... Aber heilige Schreibzeit, Batman ...: /