JavaScript JScript/Batch Wochentag statt Zahl ausgeben

Somebody111

Cadet 1st Year
Registriert
Mai 2008
Beiträge
9
Hallo, da ich keine Ahnung von JSCRIPT habe bitte ich um Eure Hilfe. Habe hier eine Vorlage, die ich mir schon so angepasst habe, wie es mir gefällt. Einziges Problem, statt dem Wochentag, wird mir die Zahl ausgegeben. Habe auch schon auf 'zig Seiten nachgelesen und bestimmt schon 15 Versuche hinter mir, aber ich bekomm' es einfach nicht hin. Hier der aktuelle Code in einer Batch:

Code:
...
function GetCurrentDate() {
var todayDate = new Date();
todayDate = todayDate.getFullYear() + "-" +
            ("0" + (todayDate.getMonth() + 1)).slice(-2) + "-" +
            ("0" + todayDate.getDay()).slice(-2);
            //bis hierhin funktioniert es, leider nur als Zahl
            ? var Wochentag = new
            ? wochentag=new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag","Samstag");
return todayDate;
}
WScript.Echo(GetCurrentDate());

Was muss ich hier tun, dass statt z. B. 03 der Wochentag "Mittwoch" ausgegeben wird?

Grüße an Alle
Somebody
 
Zuletzt bearbeitet:
Hallo.

Warum willst du das händisch mit einem Array machen? Zumal dir das ja nix bringt, weil der Wochentag ja sowohl vom Monat als auch Jahr abhängt.

Warum nimmst du nicht einen der vielen DateFormatter in the Javascripts Welt? Sowas hier z.B. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat
Über Options kannst du da u.a. auch konfigurieren ob der Wochentag dann in der ausgeschriebenen Form (long) ausgegeben werden soll. Schaffst du das mit dem Link oder brauchst du weiteren Input?

Wie soll am Ende überhaupt das Format aussehen?
"Mittwoch der 13.11.2001"
?
 
  • Gefällt mir
Reaktionen: Somebody111
Mit Deiner Variable todayDate:

Javascript:
let day_as_number = todayDate.getDay(); // liefert eine Zahl zwischen 0 = Sonntag und 6 = Samstag
let days = ["Sonntag", "Montag" ...]; // Kurzschreibweise für ein Array; Index ist numerisch und beginnt bei 0
let day_as_string = days[day_as_number]; // liefert den Tag des Arrays mit dem passenden Index
 
  • Gefällt mir
Reaktionen: Somebody111
Hallo, zuerst einmal Danke für die schnellen Antworten.
@chris221177 Nach dem ersten "let " bekomm' ich ne Fehlermeldung: ";" erwartet.
@abcddcba Ich benötige ein ISODATETIME, das auch auf älteren Systemen und anderen Ländern funktioniert. Deshalb nützen mir die DateFormatter nichts. Per Batch für jedes einzelne Land oder per Powershare, wäre das überhaupt kein Problem. Das ist aber nicht gewollt. Also wollte ich es mit JScript/Cscript machen, da ab NT3.5 vorhanden. Das ist mir bis auf die Ausgabe des Tagesnamens auch soweit gelungen, inkl. ms. Ob das nun "todayDate" oder nur Date ist völlig egal. Das war in der Vorlage so, die ich gefunden hatte.
Aktuell sieht es so aus: JJJJ-MM-DD HH-MM-SS,ms 03
Am Ende sollte es entweder so aussehen:
JJJJ-MM-DD HH-MM-SS,ms Mittwoch
oder besser noch
Mittwoch, JJJJ-MM-DD HH-MM-SS
Die Anleitungen auf den vielen Webseiten, die man dazu findet, haben leider alle nicht funktioniert, da sie meistens für HTML sind und mit "let" funzt es gar nicht, vermutlich weil es bei mir in einer Batch läuft.
 
Somebody111 schrieb:
Also wollte ich es mit JScript/Cscript machen, da ab NT3.5 vorhanden.
Da dürfte wohl das Problem liegen. JScript ist nicht Javascript. Und die Information das du Code für ein fast 30 Jahre altes Betriebssystem schreiben möchtest gehört meiner Meinung nach in den ersten Beitrag.
 
  • Gefällt mir
Reaktionen: Der Lord
Hat sich erledigt, Thread kann geschlossen werden; habe es nun mit "mshta" gelöst (siehe Grafik).
Danke an @abcddcba und @chris221177 für Eure Unterstützung.
 

Anhänge

  • GetFullDate.jpg
    GetFullDate.jpg
    68,3 KB · Aufrufe: 52
Zuletzt bearbeitet:
Zurück
Oben