Ich habe ein aktuelles Datumsobjekt, das mithilfe des JavaScript-Datumsobjekts um einen Tag erhöht werden muss. Ich habe den folgenden Code installiert:
var ds = stringFormat("{day} {date} {month} {year}", {
day: companyname.i18n.translate("day", language)[date.getUTCDay()],
date: date.getUTCDate(),
month: companyname.i18n.translate("month", language)[date.getUTCMonth()],
year: date.getUTCFullYear()
});
Wie kann ich einen Tag hinzufügen?
Ich habe +1 hinzugefügt getUTCDay()
und getUTCDate()
es wird nicht "Sonntag" angezeigt day
, was ich erwarte.
javascript
hektisch
quelle
quelle
date: (date.getUTCDate()+1)
nicht (funktioniert bei mir)? Es ist möglich, dass es einen Namenskonflikt mitdate
(als Date () - Objekt und als Objektschlüssel gibt. Haben Sie versucht, das Datum () - Objekt anders aufzurufen?7 Apr
, was du brauchst (was mir am nächsten Tag hinzugefügt wird), es ist dasSunday
. Denken Sie daran,+1
sowohl inday:
als auchdate:
(oder, wie in der aktuellen Antwort erwähnt, zuvor) hinzuzufügen .Antworten:
So fügen Sie einem Datumsobjekt einen Tag hinzu:
quelle
var a = new Date("2013-03-10T00:00:00.000Z");
a.setDate(a.getDate() + 1);
a.toISOString();
ist"2013-03-10T23:00:00.000Z"
. Dies ist ein subtiler Fall, in dem die obige Funktion bei mir nicht funktioniert hat.a.setUTCDate(a.getUTCDate() + 1);
<- das funktioniert mit Zulu-Daten.Meiner bescheidenen Meinung nach ist es am besten, einen ganzen Tag in Millisekunden hinzuzufügen, je nachdem, wie Sie Ihren Code berücksichtigen, kann dies zu Problemen führen, wenn Sie am letzten Tag des Monats sind.
Zum Beispiel am 28. Februar oder am 31. März.
Hier ist ein Beispiel, wie ich es machen würde:
Dies gewährleistet die Genauigkeit
Hier ist ein weiteres Beispiel, das ich nicht mag, kann für Sie arbeiten, aber nicht so sauber, dass die oben genannte Dosis
imho this === 'POOP'
Einige von Ihnen hatten wegen der Sommerzeit Probleme mit meinem Millisekunden-Ansatz. Also werde ich das verprügeln. Erstens haben einige Länder und Staaten keine Sommerzeit. Zweitens Das Hinzufügen von genau 24 Stunden ist ein ganzer Tag. Wenn sich die Datumsnummer nicht einmal im Jahr ändert, sondern 6 Monate später behoben wird, sehe ich dort kein Problem. Aber um definitiv zu sein und mit dem bösen Date () umgehen zu müssen, habe ich mir das überlegt und hasse Date jetzt gründlich. Das ist also mein neuer Ansatz
Nun zum lustigen Teil!
Jetzt haben wir unser offiziell gültiges internationales Datumsobjekt deutlich am Zulu-Meridian ausgeschrieben. Nun, um das Datum zu ändern
quelle
var dte = Date.parse('2015-11-01'); console.log(dte); dte.setTime(dte.getTime() + 86400000 ); console.log(dte);
Wenn Sie der aktuellen Datumszeit einen Tag (24 Stunden) hinzufügen möchten, können Sie Millisekunden wie folgt hinzufügen:
quelle
CodePen
quelle
Inspiriert von jpmottin in dieser Frage , hier ist der einzeilige Code:
Hoffe das hilft
quelle
quelle