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

Methode getDate() für Morgen und Übermorgen

Telepus

Mitglied
Hey,

es gibt eine Methode um aktuelle Datum anzuzeigen:
HTML:
var date = new Date();
var tag = date.getDate();

wie würde den die Methoden für Morgen und Übermorgen aussehen?

Mein Ansatz: hier live ausprobieren http://jsfiddle.net/SCKdX/15/
HTML:
var date = new Date();
var tag = date.getDate();
document.write("Morgen: "+(tag+1) );
ist falsch, wenn Heute = 31, Morgen wird 32. Das kann natürlich nicht sein.
 
Zuletzt bearbeitet:
Werbung:
Lies mal hier zu den Datumsfunktionen von Javascript:
SELFHTML: JavaScript / Objektreferenz / Date
Daraus ergibt sich folgendes:
Code:
datum = new Date();
datum += 1000 * 60 *60 * 24;
morgen = getDate (datum);
datum += 1000 * 60 *60 * 24;
uebermorgen = getDate (datum);
Viele Grüße - Ulrich

Was soll das denn sein was du da gepostet hast?
new Date liefert ein Date-Objekt. Da kannst du nicht einfach einen Wert drauf rechnen.

Der Ansatz ist aber schon ok.

Code:
var heute = new Date();
// Gibt die vergangene Zeit bis zum 1.1.1970 in ms zurück
heute = heute.getTime();
var tagZeit = 1000 * 60 * 60 * 24; // 1000 ist 1s * 60 = 1min * 60 = 1std * 24 = 1Tag
var zeitMorgen = heute+tagZeit;
var morgen = new Date(zeitMorgen);
alert(morgen.getDate());

oder in Kurzform
Code:
var heute = new Date();
var morgen = new Date(heute.getTime()+(1000 * 60 * 60 * 24 * 1)); // übermorgen wäre dann am Ende eine 2 anstatt 1
alert(morgen.getDate());
 
Werbung:
Gilles, Danke, deine Idee hat mir geholfen!
Was ich gebraucht habe, waren neue Objekte für Gestern, Morgen und Übermorgen.
Code:
[COLOR=#770088]var [/COLOR][COLOR=black]jetzt [/COLOR][COLOR=#666666]= [/COLOR][COLOR=#770088]new [/COLOR][COLOR=black]Date[/COLOR][COLOR=#666666]([/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]
[COLOR=black]heute [/COLOR][COLOR=#666666]= [/COLOR][COLOR=black]jetzt[/COLOR][COLOR=#666666].[/COLOR][COLOR=black]getDate[/COLOR][COLOR=#666666]([/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]

[COLOR=#770088]var [/COLOR][COLOR=black]gestern [/COLOR][COLOR=#666666]= [/COLOR][COLOR=#770088]new [/COLOR][COLOR=black]Date[/COLOR][COLOR=#666666]([/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]
[COLOR=black]gestern[/COLOR][COLOR=#666666].[/COLOR][COLOR=black]setDate[/COLOR][COLOR=#666666]([/COLOR][COLOR=black]heute[/COLOR][COLOR=#666666]-[/COLOR][COLOR=#228811]1[/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]

[COLOR=#770088]var [/COLOR][COLOR=black]morgen[/COLOR][COLOR=#666666]= [/COLOR][COLOR=#770088]new [/COLOR][COLOR=black]Date[/COLOR][COLOR=#666666]([/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]
[COLOR=black]morgen[/COLOR][COLOR=#666666].[/COLOR][COLOR=black]setDate[/COLOR][COLOR=#666666]([/COLOR][COLOR=black]heute[/COLOR][COLOR=#666666]+[/COLOR][COLOR=#228811]1[/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]

[COLOR=#770088]var [/COLOR][COLOR=black]ubermorgen [/COLOR][COLOR=#666666]= [/COLOR][COLOR=#770088]new [/COLOR][COLOR=black]Date[/COLOR][COLOR=#666666]([/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]
[COLOR=black]ubermorgen[/COLOR][COLOR=#666666].[/COLOR][COLOR=black]setDate[/COLOR][COLOR=#666666]([/COLOR][COLOR=black]heute[/COLOR][COLOR=#666666]+[/COLOR][COLOR=#228811]2[/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]
Hier ausprobieren: http://jsfiddle.net/copypast/5yUEV/
 
Gilles, Danke, deine Idee hat mir geholfen!
Was ich gebraucht habe, waren neue Objekte für Gestern, Morgen und Übermorgen.
Code:
[COLOR=#770088]var [/COLOR][COLOR=black]jetzt [/COLOR][COLOR=#666666]= [/COLOR][COLOR=#770088]new [/COLOR][COLOR=black]Date[/COLOR][COLOR=#666666]([/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]
[COLOR=black]heute [/COLOR][COLOR=#666666]= [/COLOR][COLOR=black]jetzt[/COLOR][COLOR=#666666].[/COLOR][COLOR=black]getDate[/COLOR][COLOR=#666666]([/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]

[COLOR=#770088]var [/COLOR][COLOR=black]gestern [/COLOR][COLOR=#666666]= [/COLOR][COLOR=#770088]new [/COLOR][COLOR=black]Date[/COLOR][COLOR=#666666]([/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]
[COLOR=black]gestern[/COLOR][COLOR=#666666].[/COLOR][COLOR=black]setDate[/COLOR][COLOR=#666666]([/COLOR][COLOR=black]heute[/COLOR][COLOR=#666666]-[/COLOR][COLOR=#228811]1[/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]

[COLOR=#770088]var [/COLOR][COLOR=black]morgen[/COLOR][COLOR=#666666]= [/COLOR][COLOR=#770088]new [/COLOR][COLOR=black]Date[/COLOR][COLOR=#666666]([/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]
[COLOR=black]morgen[/COLOR][COLOR=#666666].[/COLOR][COLOR=black]setDate[/COLOR][COLOR=#666666]([/COLOR][COLOR=black]heute[/COLOR][COLOR=#666666]+[/COLOR][COLOR=#228811]1[/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]

[COLOR=#770088]var [/COLOR][COLOR=black]ubermorgen [/COLOR][COLOR=#666666]= [/COLOR][COLOR=#770088]new [/COLOR][COLOR=black]Date[/COLOR][COLOR=#666666]([/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]
[COLOR=black]ubermorgen[/COLOR][COLOR=#666666].[/COLOR][COLOR=black]setDate[/COLOR][COLOR=#666666]([/COLOR][COLOR=black]heute[/COLOR][COLOR=#666666]+[/COLOR][COLOR=#228811]2[/COLOR][COLOR=#666666])[/COLOR][COLOR=#666666];[/COLOR]
Hier ausprobieren: Edit this Fiddle - jsFiddle - Online Editor for the Web (JavaScript, MooTools, jQuery, Prototype, YUI, Glow and Dojo, HTML, CSS)

Was mich wundert ist, dass diese Schreibweise tatsächlich funktioniert. Wo hast du die denn nachgelesen?
 
Werbung:
Warum wundert dich denn das? setDate und getDate lesen beziehungsweise setzen eben den Tag. (Warum man auch immer auf solche missverständlichen Methodennamen kommen muss… ;))

Keine Ahnung, ob es da irgendwelche Komplikationen gibt, aber laut etwa MDN-Doku:

- https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setDate
- https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

Ich hab mich nur gewundert, dass das Date-Objekt eine intelligente setter-Methode hat. Ich dachte es würde "stupide" das Datum setzen (Natürlich noch mit der Abfrage ob der Monat diese Tag überhaupt besitzt). Aber das Objekt passt auch Monat bzw den Tag an, wenn die Zahl größer bzw. kleiner als einer der Tage ist, die der aktuelle Monat besitzt.
Da bin ich wieder um eine Erfahrung reicher geworden ;) Man lernt halt nie aus :)
 
Zurück
Oben