Tage ermitteln

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Zitat von AmicaNoctis Beitrag anzeigen
    Ein Tag hat aber dennoch 24 Stunden
    Nein.

    Der 27. März hat 23 Stunden und der 30. Oktober hat 25 Stunden.

    Kommentar


    • #17
      Zitat von h3ll Beitrag anzeigen
      Nein.

      Der 27. März hat 23 Stunden und der 30. Oktober hat 25 Stunden.
      Ich weiß, was du meinst, inzwischen hast du den Beitrag ja auch geändert und Schaltjahr durch Sommer-/Winterzeit ersetzt. Vorher hat das einfach keinen Sinn ergeben.

      Der UNIX-Tag hat aber auch bei der Zeitumstellung 24 Stunden, nur rutschen wir in eine andere Zeitzone und deswegen scheint er dann 23 bzw. 25 Stunden zu haben. Rechnerisch ändert sich aber nur das UTC Offset. Du hast ja Recht im Bezug auf die Ausgabe eines menschlich relevanten lokalisierten Datums und ich bin ja auch inzwischen überzeugt von der Sinnhaftigkeit der "+7 days"-Geschichte.

      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #18
        Wir haben im Prinzip beide Recht. Ein physikalischer Tag hat 24 Stunden. Ein Kalendertag kann aber auch 23 oder 25 Stunden haben. Es ist halt immer die Frage, welche Art von Tag man meint. Aber in dem Fall handelt es sich offenbar um Kalendertage.

        Kommentar


        • #19
          Ich danke Euch für die Wervollen Tipps.

          Also mache ich es so:

          PHP-Code:
          $datum_von "2010-08-23";
          $datum_bis "2011-07-22";

          echo 
          $datum_stemp_von." - ".$datum_stemp_bis."<br>";

          $tagdate('Y-m-d'strtotime("$datum_von".' next monday'));  

          echo 
          $tag."<br>";
          $date = new DateTime($tag);
          $date->modify('+1 week');
          echo 
          $date->format('Y-m-d'); 
          Nun habe ich den Strattag bzw. Datum und die darauffolgende Woche. Wie kann ich nun alle Tage bis zum $datum_bis darstellen?

          Geht das mit einer Schlaufe oder gibt es da eine spezielle Funktion?

          Kommentar


          • #20
            Ehmm... was wird das? Du hast unser beider Lösungsvorschläge vermischt. Entscheide dich für einen Weg.

            Schlaufe != Schleife

            In dem Fall bietet sich eine for-Schleife an.

            Kommentar


            • #21
              Mit einer Schleife.
              Kriege bitte wenigstens das selber hin.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #22
                Ja, absichtlich somit kann ich alle Montage oder Dienstage usw. ab $datum_von anzeigen. Da meine Variable Montag, Dienstag usw ist ist die Methode wobei ich diese Variable verwenden kann optimal.

                Nun muss ich es nur noch bis $datum_bis laufen lassen können.

                Oder wie kann ich ab Deinem Beispiel den Wochentag ermitteln

                Kommentar


                • #23
                  Du kannst auch gerne mal ein Blick ins PHP-Handbuch werfen. Das sollte man als Programmierer schon mal gelesen haben.
                  Zuletzt geändert von h3ll; 19.04.2011, 17:03.

                  Kommentar


                  • #24
                    Den Vergleich zweier Timestamps als Bedingung für eine Schleife wirst du doch wohl hinkriegen?
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #25
                      h3ll:

                      Aber es funktioniert so ja auch - was spricht denn dagegen?

                      wahsaga:

                      Leider habe ich auch bei der Schleife so meine Mühe, sorry bin halt nicht der hardcore Progger.
                      Zuletzt geändert von sepp; 20.04.2011, 12:50.

                      Kommentar


                      • #26
                        PHP-Code:
                        for($reihe=$datum_von;$reihe<=$datum_bis;$reihe++) 
                        Das stimmt so nicht da ich eine Woche addieren muss und nicht ++

                        Also versuchte ich das so
                        PHP-Code:
                        for($reihe=$datum_von;$reihe<=$datum_bis;$reihe->modify('+1 week');) 
                        Und wenn ich das Datum in Timestamp umwandle geht es auch ins unentliche
                        PHP-Code:
                        for($reihe=$datum_stemp_von;$reihe<=$datum_stemp_bis;$reihe+604800
                        Das gibt einen klaren php Fehler aus, bitte lacht nicht über meine Versuche - aber mit dem Halbwissen was ich habe bleibt mir nur das testen und aspröbeln.

                        Kommentar


                        • #27
                          Ungeachtet dessen, dass die Schleifentypen natürlich untereinander austauschbar sind, bietet sich eine while-Schleife hier m.E. eher an.

                          Solange Datum* noch kleiner als Zieldatum*, addiere Zeitspanne x drauf.


                          * Datum hier in seiner Repräsentation durch einen Timestamp.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #28
                            Zitat von wahsaga Beitrag anzeigen
                            Ungeachtet dessen, dass die Schleifentypen natürlich untereinander austauschbar sind, bietet sich eine while-Schleife hier m.E. eher an.

                            Solange Datum* noch kleiner als Zieldatum*, addiere Zeitspanne x drauf.
                            Demnach sind alle For-Schleifen besser als While-Schleifen auszuprogrammieren?

                            Also statt
                            PHP-Code:
                            for ($i 0$i <= $i_max$i++) {
                                
                            /* ... */

                            besser
                            PHP-Code:
                            $i 0;
                            while (
                            $i <= $i_max) {
                                
                            /* ... */
                                
                            $i++;

                            ?

                            Weil For-Schleifen funktionieren ja meistens nach dem Prinzip (addiere solange, bis irgendwas erreicht ist).

                            Kommentar


                            • #29
                              Zitat von h3ll Beitrag anzeigen
                              Demnach sind alle For-Schleifen besser als While-Schleifen auszuprogrammieren?
                              Nein, das habe ich überhaupt nicht behauptet.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar


                              • #30
                                Aber du hast doch behauptet, dass sich für eine "von-bis" Schleife while anbietet, oder?

                                Kommentar

                                Lädt...
                                X