Hallo Cheatah,
Wie kann ich dieses Problem denn lösen?
Indem Du das Datum mit einer Uhrzeit erzeugst, welche signifikant von Mitternacht abweicht. Es hat sich hierzu 3 Uhr eingebürgert.
Das halte ich für suboptimal. Wenn, dann würde ich 12 Uhr mittags nehmen, denn dann ist eigentlich in keinem Land Umstellung (wäre mir zumindest nicht bekannt), d.h. ob man da ein oder zwei Stunden vor oder zurück geht, ist relativ egal. Bei 3 Uhr handelt man sich genau dann Probleme ein, wenn die Uhrzeit z.B. in einem anderen Land später als hier um 2 Uhr umgestellt wird (und wer weiß, welche verrükte Zeitzone der Rechner gerade eingestellt hat, an dem der User sitzt, selbst wenn die Webseite sich an Bewohner Deutschlands richtet, kann jemand ja in einem Internet-Café im Urlaub sitzen).
Andererseits finde ich die Variante, direkt nur im Datum rumzurechnen, schöner, weil man sich dann wirklich nicht um Zeitumstellungen Gedanken machen muss.
Als weitere Alternative bietet sich außerdem noch an, mit Date.UTC zu rechnen, denn UTC kennt keine Zeitumstellungen:
var int_date = Date.UTC(parseInt(arr_date[2]),parseInt(arr_date[1]),parseInt(arr_date[0]));
var int_date_neu = int_date + 86400000;
var obj_date_neu = new Date (int_date_neu);
// zugriff jetzt aber nicht mehr über getMonth, sondern über getUTCMonth
// usw. usf. da wir hier NICHT in Lokalzeit rechnen
(Siehe auch etliche Forumspostings von mir im Archiv zu der gleichen Problematik in PHP, Python, etc.)
Viele Grüße,
Christian