Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Regex Vereinfachung gesucht

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Regex Vereinfachung gesucht

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      WolfgangFB last edited by

      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(/^:+/, '');
      }
      
      
      M 1 Reply Last reply Reply Quote 0
      • M
        MCU @WolfgangFB last edited by

        @wolfgangfb Warum dann : im formatDate?

        formatDate(1000*sec,'h m s').replace('0','')
        
        F W 2 Replies Last reply Reply Quote 0
        • F
          fastfoot @MCU last edited by fastfoot

          @mcu und schwupps werden aus 10 Std/Min nur jeweils eine 🙂

          @WolfgangFB

          log(formatDate(34000,'h:m:s').replace(/^(0:)+/,'')) 
          
          W 1 Reply Last reply Reply Quote 0
          • W
            WolfgangFB @MCU last edited by

            @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 🙂

            1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active last edited by

              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.

              W 1 Reply Last reply Reply Quote 0
              • W
                WolfgangFB @fastfoot last edited by

                @fastfoot sagte in Regex Vereinfachung gesucht:

                @WolfgangFB

                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)

                1 Reply Last reply Reply Quote 0
                • W
                  WolfgangFB @mickym last edited by

                  @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.

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    fastfoot @WolfgangFB last edited by fastfoot

                    @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)+/,''))

                    W 1 Reply Last reply Reply Quote 0
                    • W
                      WolfgangFB @fastfoot last edited by

                      @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.

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      942
                      Online

                      31.8k
                      Users

                      80.0k
                      Topics

                      1.3m
                      Posts

                      4
                      9
                      276
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo