Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. "Heute 0:00 Uhr" eleganter berechen

    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

    "Heute 0:00 Uhr" eleganter berechen

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

      Wie kann ich den Zeitpunkt Heute, 0:00 eleganter/kürzer berechen als in

      function Heute0Uhr(){
          var Now = Date.now();
          var Jahr = parseFloat(formatDate(Now, "YYYY"));
          var Monat = parseFloat(formatDate(Now, "MM")) - 1;
          var Tag = parseFloat(formatDate(Now, "DD"));
          var Datum = new Date(Jahr, Monat, Tag, 0, 0).getTime();
          console.log("Heute, 0:00 " + formatDate(Datum, "DD.MM.YYYY hh:mm:ss"));
          return Datum;
      }
      
      
      Codierknecht Homoran paul53 4 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @WolfgangFB last edited by

        @WolfgangFB

        var Datum = new Date(new Date().toDateString());
        
        1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @WolfgangFB last edited by

          @wolfgangfb sagte in "Heute 0:00 Uhr" eleganter berechen:

          Wie kann ich den Zeitpunkt Heute, 0:00 eleganter/kürzer berechen als in

          was gibt es daran zu berechnen?
          der ist fix: heute 0:00

          W 1 Reply Last reply Reply Quote 1
          • Codierknecht
            Codierknecht Developer Most Active @WolfgangFB last edited by

            @wolfgangfb sagte in "Heute 0:00 Uhr" eleganter berechen:

            var Monat = parseFloat(formatDate(Now, "MM")) - 1;

            Das ist aber nicht "Heute" ... und wird im Januar fürchterlich krachen 😉

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

              @wolfgangfb

              return new Date(formatDate(new Date(), 'YYYY-MM-DD 0:00')).getTime();
              
              1 Reply Last reply Reply Quote 0
              • W
                WolfgangFB @Homoran last edited by

                @homoran sagte in "Heute 0:00 Uhr" eleganter berechen:

                @wolfgangfb sagte in "Heute 0:00 Uhr" eleganter berechen:

                Wie kann ich den Zeitpunkt Heute, 0:00 eleganter/kürzer berechen als in

                was gibt es daran zu berechnen?
                der ist fix: heute 0:00

                Heute 0:00 ist 1677106800000, gestern war das 1677020400000 und morgen wird es 1677193200000 sein. Ich brauche die Absolutwerte.

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

                  @codierknecht sagte in "Heute 0:00 Uhr" eleganter berechen:

                  @wolfgangfb sagte in "Heute 0:00 Uhr" eleganter berechen:

                  var Monat = parseFloat(formatDate(Now, "MM")) - 1;

                  Das ist aber nicht "Heute" ... und wird im Januar fürchterlich krachen 😉

                  Verstehe ich nicht, FormatDate(Now, "MM") liefert im Januar 1, für new Date(Jahr, Monat, Tag...) muss der Monat ab 0 eingegeben werden. Was kracht denn da im Januar?

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

                    let heute=new Date();
                    heute.setHours(0,0,0,0);
                    log(heute);
                    log(heute.getTime());
                    
                    1 Reply Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @WolfgangFB last edited by

                      @wolfgangfb

                      var Monat = parseFloat(formatDate(Now, "MM")) - 1;
                      

                      Liefert doch im Januar eine 0 zurück (da wird ja noch eine 1 abgezogen).
                      Dann wird

                      var Datum = new Date(Jahr, Monat, Tag, 0, 0).getTime();
                      

                      krachen, weil nach meinem Dafürhalten mit Monat "0" kein Datum gebildet werden kann.

                      F W 2 Replies Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @WolfgangFB last edited by

                        @wolfgangfb sagte in "Heute 0:00 Uhr" eleganter berechen:

                        Ich brauche die Absolutwerte.

                        also Millisekunden Unixtime?
                        Da war kein Reden von.

                        @wolfgangfb sagte in "Heute 0:00 Uhr" eleganter berechen:

                        gestern war das 1677020400000 und morgen wird es 1677193200000 sein.

                        falls da auch noch Infos zu fehlen sollten:
                        willst du das auch "heute" berechnen?

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

                          @codierknecht sagte in "Heute 0:00 Uhr" eleganter berechen:

                          nach meinem Dafürhalten

                          ein simpler Test könnte dich vom Gegenteil überzeugen...

                          Codierknecht 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Homoran last edited by

                            @homoran sagte: Millisekunden Unixtime? Da war kein Reden von.

                            Man sieht es in Zeile 6 des Skripts.

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @paul53 last edited by

                              @paul53 sagte:

                              Man sieht es in Zeile 6 des Skripts.

                              😊 ich hab nur Zeile 7 beachtet mit formatDate...

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

                                @codierknecht sagte in "Heute 0:00 Uhr" eleganter berechen:

                                @wolfgangfb

                                var Monat = parseFloat(formatDate(Now, "MM")) - 1;
                                

                                Liefert doch im Januar eine 0 zurück (da wird ja noch eine 1 abgezogen).

                                Nein, formatDate(Now, "MM") liefert im Januar eine 1.

                                Dann wird

                                var Datum = new Date(Jahr, Monat, Tag, 0, 0).getTime();
                                

                                krachen, weil nach meinem Dafürhalten mit Monat "0" kein Datum gebildet werden kann.

                                Doch:

                                var Datum = new Date(2023, 1, 2, 3, 4).getTime();
                                console.log(formatDate(Datum, "DD.MM.YYYY hh:mm:ss") + " xxx " + Datum);
                                var Datum = new Date(2023, 0, 2, 3, 4).getTime();
                                console.log(formatDate(Datum, "DD.MM.YYYY hh:mm:ss") + " xxx " + Datum);
                                
                                

                                liefert

                                02.02.2023 03:04:00 xxx 1675303440000
                                02.01.2023 03:04:00 xxx 1672625040000
                                

                                Date.getDate liefert 1-31, Date.getMonth daegen 0-11, der Monat ist "0-indexed"

                                Codierknecht 1 Reply Last reply Reply Quote 0
                                • Codierknecht
                                  Codierknecht Developer Most Active @WolfgangFB last edited by

                                  @wolfgangfb sagte in "Heute 0:00 Uhr" eleganter berechen:

                                  Date.getDate liefert 1-31, Date.getMonth daegen 0-11, der Monat ist "0-indexed"

                                  Wer macht denn so einen Quatsch?
                                  Ich glaube das "ich lerne JS" lege ich gleich wieder zu den Akten 😡

                                  Nichtsdestotrotz liefert

                                  return new Date(new Date().toDateString()); 
                                  

                                  das von Dir gewünschte Ergebnis.

                                  1 Reply Last reply Reply Quote 0
                                  • Codierknecht
                                    Codierknecht Developer Most Active @fastfoot last edited by

                                    @fastfoot sagte in "Heute 0:00 Uhr" eleganter berechen:

                                    ein simpler Test könnte dich vom Gegenteil überzeugen...

                                    Auf eine dermaßen abstruse Idee bin ich gar nicht erst gekommen 😉

                                    F paul53 2 Replies Last reply Reply Quote 0
                                    • F
                                      fastfoot @Codierknecht last edited by

                                      @codierknecht sagte in "Heute 0:00 Uhr" eleganter berechen:

                                      Auf eine dermaßen abstruse Idee bin ich gar nicht erst gekommen

                                      lohnt aber, gerade als blutiger Anfänger 😀

                                      Codierknecht 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @Codierknecht last edited by

                                        @codierknecht sagte: dermaßen abstruse Idee

                                        So abstrus ist es nicht: Man kann so den Monat direkt als Index auf ein Array mit z.B. deutschen Monatsnamen verwenden.

                                        Codierknecht 1 Reply Last reply Reply Quote 0
                                        • SKB
                                          SKB Developer Most Active last edited by

                                          Genau wie:

                                          The getDay() method returns the day of the week (0 to 6) of a date.
                                          
                                          Sunday = 0, Monday = 1, ...
                                          

                                          Hier greift dann auch das Array, was @paul53 angeschnitten hat, da man einfach mit:

                                          const weekday = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
                                          
                                          const d = new Date();
                                          let day = weekday[d.getDay()];
                                          console.log(day);
                                          

                                          Den passenden Namen zu dem Wochentag anzeigen lassen kann 😉

                                          Zero-based index it's called 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • Codierknecht
                                            Codierknecht Developer Most Active @paul53 last edited by

                                            @paul53 sagte in "Heute 0:00 Uhr" eleganter berechen:

                                            Man kann so den Monat direkt als Index auf ein Array mit z.B. deutschen Monatsnamen verwenden.

                                            @skb sagte in "Heute 0:00 Uhr" eleganter berechen:

                                            Den passenden Namen zu dem Wochentag anzeigen lassen kann

                                            Wozu man das dann verwenden kann, ist mir durchaus klar.
                                            Aber das so in formatDate() usw. zu verwenden finde ich persönlich schon reichlich schräg und kenne ich aus anderen Sprachen auch nicht in der Art.
                                            Ich persönlich finde das in höchstem Maße Un-Intuitiv!

                                            Beim Wochentag ist das durchaus gebräuchlich ... aber doch nicht beim Monat.
                                            Dann hätte man auch gleich den Tag des Monats 0-basiert machen können, um zumindest konsistent zu bleiben. Aber dann könnte man doch auch beim Jahr .... ach, lassen wir das - hier wird's dann etwas zu sehr OT.

                                            SKB paul53 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            661
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            33
                                            744
                                            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