NEWS
Regex Vereinfachung gesucht
-
Ich habe eine Funktion die aus Sekunden die Zeit in Stunden, Minuten Sekunden ausgibt und wenn keine Stunden bzw. Minuten da sind diese eben weglässt un ebenso führende Nullen weglässt.
ChatGPT hat keine sinnvolle Vereinfachung gefunden, ist hier jemand, der führende Nullen und Doppelpunkte schöner entfernen kann? (ich kann mit meiner Lösung gut leben, es interessiert mich nur, wie man das sinnvoller als Einzeiler machen kann).function Sec2Zeit(Sec){ return formatDate(Sec * 1000, "hh:mm:ss").replace(/^0+/, '').replace(/^:+/, '').replace(/^0+/, '').replace(/^:+/, ''); }
-
@wolfgangfb Warum dann : im formatDate?
formatDate(1000*sec,'h m s').replace('0','')
-
@mcu und schwupps werden aus 10 Std/Min nur jeweils eine
log(formatDate(34000,'h:m:s').replace(/^(0:)+/,''))
-
@mcu sagte in Regex Vereinfachung gesucht:
@wolfgangfb Warum dann : im formatDate?
Weil ich bei 2 Stunden 12 Minuten 45 Sekunden gerne die Ausgabe 2:12:45 hätte
formatDate(1000*sec,'h m s').replace('0','')
20:00:00 => Ausgabe: "2", nicht ganz das was ich will
-
Irgendwo glaube ich habe ich mal vor langer Zeit was geschrieben, wie man das picture Format in JS verwendet - aber ich finde es nicht mehr:
https://www.w3.org/TR/xpath-functions-31/#func-format-dateTime
Jedenfalls kann man zumindest wenn man als picture format
h:m:s
verwendet die führenden Nullen wegbekommen. -
@fastfoot sagte in Regex Vereinfachung gesucht:
log(formatDate(34000,'h:m:s').replace(/^(0:)+/,''))
(Wie gesagt, meine Lösung funktioniert, es geht mir nur darum zu wissen, ob es eine simplere Regex Lösuing für mein Problem gibt).
Ergebnis von 60000 (also 1 Minute): "1:0", gewünscht ist aber "1:00" (Es soll eben wie eine Zeit aussehen)
-
@mickym sagte in Regex Vereinfachung gesucht:
Irgendwo glaube ich habe ich mal vor langer Zeit was geschrieben, wie man das picture Format in JS verwendet - aber ich finde es nicht mehr:
https://www.w3.org/TR/xpath-functions-31/#func-format-dateTime
Jedenfalls kann man zumindest wenn man als picture format
h:m:s
verwendet die führenden Nullen wegbekommen.Ich möchte die führeden Nullen aber nur ganz vorne wegbekommen, 20 Uhr und 5 Sekunden sieht meiner Meinung nach als "20:0:5" nicht wie eine Zeit aus, während 5 Minuten 7 Sekunden meiner Meinung nach durchaus wie 5:07 aussehen können.
-
@wolfgangfb sagte in Regex Vereinfachung gesucht:
Ich möchte die führeden Nullen aber nur ganz vorne wegbekommen, 20 Uhr und 5 Sekunden sieht meiner Meinung nach als "20:0:5" nicht wie eine Zeit aus, während 5 Minuten 7 Sekunden meiner Meinung nach durchaus wie 5:07 aussehen können.
sieht für mich aus wie 5Std 7Min. ich formatiere grundsätzlich hh:mm:ss dann sieht das auch iuntereinander geschrieben richtig aus. Aber sei's drum:
log(formatDate(sec,'hh:mm:ss').replace(/^(0+:|0)+/,''))
-
@fastfoot sagte in Regex Vereinfachung gesucht:
@wolfgangfb sagte in Regex Vereinfachung gesucht:
Ich möchte die führeden Nullen aber nur ganz vorne wegbekommen, 20 Uhr und 5 Sekunden sieht meiner Meinung nach als "20:0:5" nicht wie eine Zeit aus, während 5 Minuten 7 Sekunden meiner Meinung nach durchaus wie 5:07 aussehen können.
sieht für mich aus wie 5Std 7Min.
In dem Fall werden die Sekunden runtergezählt, da sieht man dann schon, dass es keine 5 Stunden sind.
ich formatiere grundsätzlich ss:mm:ss
ich nehme an Du meinst hh:mm:ss
dann sieht das auch iuntereinander geschrieben richtig aus. Aber sei's drum:
log(formatDate(sec,'hh:mm:ss').replace(/^(0+:|0)+/,''))
Super, das ist die Lösung, die ich gesucht habe.