• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Zum Datum eine Stunde addieren

kiwi2016

New member
Hallo,

sorry aber ich stehe gerade auf dem Schlauch...

Ich nutze ein Datum + Uhrzeit der Form

Code:
Date.parse($scope.zeitData[j].zeitstart)

Ich will einfach nur eine Stunde dazu addieren. Kann mir da fix jemand helfen?

danke
 
Das kannst du selbst rausfinden. Date.parse() gibt die Zeit in Millisekunden seit dem 1.1.1970 0:00.00.000 zurück. Wenn du eine Stunde addieren musst, addiere die Anzahl von Millisekunden einer Stunde.
Du musst aufpassen, weil diese Lösung die Umstellung von Sommerzeit auf Winterzeit und umgekehrt sowie Schaltsekunden nicht berücksichtigt.
 
Umstellung von Sommerzeit auf Winterzeit
Das kommt darauf an, was man genau unter
eine Stunde dazu addieren
meint. Wenn man einfach wirklich eine reale Stunde später meint, ist die Zeitumstellung kein Problem.

JS ignoriert laut Specs diese komplett:
Time is measured in ECMAScript in milliseconds since 01 January, 1970 UTC. In time values leap seconds are
ignored. It is assumed that there are exactly 86,400,000 milliseconds per day.
 
Also bei mir hat es jetzt immer noch nicht so richtig geklappt:

In $scope.zeitData[j].zeitstart steht ein string eines timestamps aus einer SQL-Datenbank (2016-02-07 08:40:31). Ich frag die Datenbank ab und eine Stunde weniger wird mir angezeigt.

Manuell eine Stunde im Code zu addieren würde mir schon reichen. Aber es kappt nicht. :(
 
Zuletzt bearbeitet von einem Moderator:
Zeig doch mal was du probiert hast.

Denkanstoß:
Code:
var dbTime = ($scope.zeitData[j].zeitstart + 'Z').replace(' ', 'T');
console.log(new Date(Date.parse(dbTime)).toString());
 
Das .replace ist gar nicht nötig:
Code:
var d = new Date("2016-02-07 08:40:31");
console.log(d);
var d = new Date("2016-02-07 08:40:31Z");
console.log(d);

@kiwi: um dein Problem zu lösen willst du keine Stunde dazuaddieren, sondern du musst die Zeitzone richtig einstellen...
 
@kkapsner
Hatte wegen dem .replace() da noch im Hinterkopf wegen Browserkompatibilität bei Date.parse(), kann mich aber auch irren.

@kiwi2016
Statt dem 'Z' entweder '+0100' oder '-0100'
Musst mal probieren was da bei dir passt...
 
OK - du hast Recht. Der FF akzeptiert das ohne "T" aber der IE nicht. Also das .replace() muss doch sein.

Ich denke, dass "Z" schon korrekt ist.
 
Zurück
Oben