Zruck zum Blog, du Zniachtl
Juni 2018·1 Min. zum LesnVo da KI übersetzt

Sekunden in Tage, Stunden, Minuten, Sekunden umrechnen

#basetime#javascript#time#zeit

Bei am aktuellen Projekt, an dem i heit in da Fruah gsessn bin, hob i a bissl Kopfweh ghobt, an Sekundenwert in Tage, Stunden, Minuten und Sekunden umzurechnen. Eigentlich simpel, aber i hob am Schlauch gstandn. Wem's a so geht und vor an ähnlichen Problem steht, do is a Lösung. Zum Beispiel wolln mia noch 500 Sekunden a Ereignis auslösn.

var basetime = 500;

Dann warn des 0 Tage, 0 Stunden, 8 Minuten, 20 Sekunden. Berechnen lasst si des Ganze so:

var tage = Math.floor(basetime / 86400);
var stunden = Math.floor((basetime % 86400) / 3600);
var minuten = Math.floor((basetime % 3600) / 60);
var sekunden = Math.floor(basetime % 60);

Math.floor rundet des Ergebnis jeweils auf den nächst kleineren natürlichen Zahlenwert ab. Für die Anzoi der Tage teiln mia also ganz einfach de Variable basetime (= die Anzoi an Sekunden, de ma umrechnen wolln) durch 86400 (= 60 Sekunden 60 Minuten 24 Stunden = 1 Tag) und runden den Wert ab. Der Rest dieser Division (Modulo) entspricht dann den Sekunden, de no übrig sand und ned in an Tag "gepackt" wern konnten - gteilt durch 3600 (a Stund) entspricht jetzt da Anzoi der übrigen Stunden. Des Ganze runden mia wieda ab, weil mia mit Minuten "auffüllen" wolln. Wenn ma die Sekundenanzoi durch 3600 teilt, hom ma die Anzoi der Stunden, de in die Sekundenangabe einepassn. Des Ganze gteilt durch 60 gibt die Anzoi der Minuten, de no übrig sand. Abrunden, weil mia mit Sekunden auffüllen wolln. Schlussendlich teiln mia die Anzoi an Sekunden per Modulo durch 60, um die Anzoi an Sekunden rauszukriagn, de in die übergebene Sekundenanzoi passn. Abrunden, und mia hom die Zeit in Sekunden. Is doch ned so schwer, du Gscheidhaferl.

Lösn mia des Ganze amoi mit Zohln auf, schaut des Ergebnis so aus:

var basetime = 500;
var tage = Math.floor(500 / 86400); // 500 / 86400 = 0,005787037037037 = Abgerundet 0
var stunden = Math.floor((500 % 86400) / 3600); // 500 % 86400 = 500 / 3600 = 0,138888888888889 = Abgerundet 0
var minuten = Math.floor((basetime % 3600) / 60); // 500 % 3600 = 500 / 60 = 8 = Abgerundet 8
var sekunden = Math.floor(basetime % 60); // 500 % 60 = 20 = Abgerundet 20
NeicherSimple Template EngineElterTimemachine -5058