• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datum Anzeige

JoSiBa

Neues Mitglied
Hallo,
ich brauche Hilfe.


Ich muss das heutige Datum und daneben, heute minus 28 Tagen.
Wer kann mich bei diesen Code helfen?

Für das heutiges Datum, habe ich aktuell diesen Code:
<script>
date = new Date().toLocaleDateString();
document.write(date);
</script>

Das Datum format sollte sein : TT.MM.JJJJ ( 07.08.2023)
Es sollte auch die Monatslängen 28/29 und 30/31 Tagen beachtet werden.

Danke
 

Sclero2004

Mitglied
Da kann dir Stackoverflow helfen:
Gleich die erste Antwort.
Du bist da schon auf dem richtigen Wege mit dem Date-Objekt und toLocaleDateString. Wenn Du damit arbeitest werden die richtigen Längen der Monate, Schaltjahre etc. berücksichtigt.
Aber, bitte, fang gar nicht erst mit document.write an. Bei so etwas einfachem funktioniert es, aber Du kannst in anderem Zusammenhang große Probleme damit bekommen:
Besser einen Container anlegen und den Text dort eintragen:
Code:
<div id="datum-und-zeit"></div>
<script>
const meinContainer = document.getElementById('datum-und-zeit');
dateStr = new Date().toLocaleDateString();
meinContainer.innerHTML += dateStr;
</script>
 
Zuletzt bearbeitet:

Sclero2004

Mitglied
Was verstehst Du jetzt nicht, die Sache mit dem Aufaddieren von Tagen oder mit document.write?
Das Subtrahieren würde so funktionieren:
Code:
<div id="datum-und-zeit"></div>
<script>
const meinContainer = document.getElementById('datum-und-zeit');
// Das Date-Objekt für die aktuellen Zeit ermitteln:
let theDate = new Date();
// Den String für die aktuelle Sprache, bei uns deutsch, ermitteln:
const dateStr = theDate.toLocaleDateString();
// Den String in den Containe eintragen:
meinContainer.innerHTML = dateStr;
// Den aktuellen Tag ermitteln:
const currentDay = theDate.getDay();
// 30 Tage subtrahieren:
const recentDay = currentDay - 30;
// und wieder in das Date-Objekt eintragen:
theDate.setDay(recentDay);
// Dann genau wie oben den String erzeugen und in den Container eintragen.
</script>
 

JoSiBa

Neues Mitglied
Hallo sclero2004,

Leider funktioniert der Code nicht.
Es wird das heutige Datum, 9.8.2023, ausgegeben.

Ist es möglich gleichzeitig es in den Format 09.08.2023 auszugeben?
 

Sclero2004

Mitglied
Doch, der Code funktioniert, allerdings hatte ich das Eintragen des vergangenen Datums deiner Eigeninitiative überlassen. Hast Du meine Kommentare gelesen, insbesondere den letzten?
 

JoSiBa

Neues Mitglied
Meinst du so?
// Dann genau wie oben den String erzeugen und in den Container eintragen.

const theDate = theDate.toLocaleDateString();

meinContainer.innerHTML = theDate;

Ich bin ???
 

Sclero2004

Mitglied
In etwa passt das schon. Nur enthält theDate bisher das Date-Objekt, es ist missverständlich, jetzt auf ein mal den String dort hinein zu schreiben. Und noch etwas, das konntest Du nicht wissen: Um den Text hinzu zu fügen musst Du ein += statt eines einfachen = verwenden:
Code:
// Den String für die aktuelle Sprache, bei uns deutsch, ermitteln:
const recentDateStr = theDate.toLocaleDateString();
// Den String in den Containe eintragen:
meinContainer.innerHTML += recentDateStr;
 

JoSiBa

Neues Mitglied
Ich habe es jetzt so eingetragen, und erhalte weiterhin 9.8.2023.

<div id="datum-und-zeit"></div>

<script>

const meinContainer = document.getElementById('datum-und-zeit');

// Das Date-Objekt für die aktuellen Zeit ermitteln:

let theDate = new Date();

// Den String für die aktuelle Sprache, bei uns deutsch, ermitteln:

const dateStr = theDate.toLocaleDateString();

// Den String in den Containe eintragen:

meinContainer.innerHTML = dateStr;

// Den aktuellen Tag ermitteln:

const currentDay = theDate.getDay();

// 30 Tage subtrahieren:

const recentDay = currentDay - 30;

// und wieder in das Date-Objekt eintragen:

theDate.setDay(recentDay);

// Dann genau wie oben den String erzeugen und in den Container eintragen.

// Den String für die aktuelle Sprache, bei uns deutsch, ermitteln:

const recentDateStr = theDate.toLocaleDateString();

// Den String in den Containe eintragen:

meinContainer.innerHTML += recentDateStr;

</script>
 

Sclero2004

Mitglied
Da hilft dann: In der Console nachsehen ob eine Fehlermeldung kommt und in der Doku nachlesen. Ergebnis: Mir war ein Fehler unterlaufen, die Funktion heißt nicht getDay sondern getDate.
So funktioniert es dann:
Code:
    <div id="datum-und-zeit"></div>
    <script>
        const meinContainer = document.getElementById('datum-und-zeit');

        // Das Date-Objekt für die aktuellen Zeit ermitteln:

        let theDate = new Date();

        // Den String für die aktuelle Sprache, bei uns deutsch, ermitteln:

        const dateStr = theDate.toLocaleDateString();

        // Den String in den Container eintragen:

        meinContainer.innerHTML = dateStr;

        // Den aktuellen Tag ermitteln:

        const currentDay = theDate.getDate();

        // 30 Tage subtrahieren:

        const recentDate = currentDay - 30;

        // und wieder in das Date-Objekt eintragen:

        theDate.setDate(recentDate);

        // Dann genau wie oben den String erzeugen und in den Container eintragen.

        // Den String für die aktuelle Sprache, bei uns deutsch, ermitteln:

        const recentDateStr = theDate.toLocaleDateString();

        // Den String in den Containe eintragen:

        meinContainer.innerHTML += recentDateStr;

    </script>
 

JoSiBa

Neues Mitglied
super das funktioniert jetzt
Danke


eine frage habe ich noch, wegen der Formatierung
es wird so ausgegeben : 10.8.2023 8.7.2023

Ist es möglich so auszugeben 10.08.2023 08.07.2023
 

Sclero2004

Mitglied
Ja natürlich, mit dem Pluszeichen kannst Du Zeichenketten bzw. Strings verknüpfen:
Code:
meinContainer.innerHTML += ' ' + recentDateStr;
 

JoSiBa

Neues Mitglied
ich glaube, ich habe mich nicht richtig ausgedrückt.
Ich möchte das die Tage und Monate immer als XX ausgegeben werden .
Falsche : 8.7.2023
Richtig/mein Wunsch: 08.07.2023
 
Oben