molily: Zeitstempel / Millisekunden des jeweilis vorherigen Tages

Beitrag lesen

Das ist nicht wirklich schön, wenn es gerade der 1. Tag des Monats ist. dann kommt der nullte Tag raus.

Nein, es kommt der letzte Tag des vorherigen Monats heraus.

new Date(2010, 0, 1, 12)

Fri Jan 01 2010 12:00:00 GMT+0100

new Date(2010, 0, 0, 12)

Thu Dec 31 2009 12:00:00 GMT+0100

new Date(2010, 0, -1, 12)

Wed Dec 30 2009 12:00:00 GMT+0100

usw., 0 und negative Werte sind durchaus nutzbar.

Würde Zeit.setDate(Zeit.getDate() - 1); das Problem lösen?

Ja. (t.setTime(t.getTime() - (1000 * 60 * 60 * 24)) und dergleichen beachten die Zeitumstellung nicht.)

Und ein neues Datumsobjekt zu erzeugen muss auch nicht sein.

Wenn man sowieso zwei neue Datumsobjekte braucht, halte ich das durchaus für sinnvoll:

var now = new Date;  
var a = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1);  
var b = new Date(now.getFullYear(), now.getMonth(), now.getDate());  
alert(now + '\n' + a + '\n' + b);

Mathias