Daniel: Uhrzeit runden

Hi,
wie kann ich die Uhrzeit runden? das nur Volle, viertel, halbe und
dreiviertel ausgegeben wird? also ich nur ausgaben bekomme die z.B. so
aussehen:

12:00
12:15
12:30
12:45

ich komm nicht drauf. geht das überhaupt per runden? oder muss ich
sowas wie

  
if($minuten >0 && $minuten=<15)  
{  
  $minuten = 15  
}  
elseif($minuten >15 && $minuten=<30)  
{  
  $minuten = 30  
}  
elseif($minuten >30 && $minuten=<45)  
{  
  $minuten = 45  
}  
elseif($minuten >45 && $minuten=<59 || $minuten==0)  
{  
  $minuten = 0  
}  
  

bzw. ein switch?

MfG

  1. Hallo Daniel

    wie kann ich die Uhrzeit runden? das nur Volle, viertel, halbe und
    dreiviertel ausgegeben wird?

    ...

    geht das überhaupt per runden?

    ja klar:

      
    floor($min/60*4)/4*60;  
    
    

    ich würde auf jeden Fall floor() verwenden, da die Uhr nicht schon bei 12:23 auf 12:30 springen soll

    Gruß,
    Benne

  2. Hallo,

    Hi,
    wie kann ich die Uhrzeit runden? das nur Volle, viertel, halbe und
    dreiviertel ausgegeben wird? also ich nur ausgaben bekomme die z.B. so
    aussehen:

    12:00
    12:15
    12:30
    12:45

    bilde das Intervall {0,59} auf das Intervall {0,3} ab und multipliziere das Ergebnis mit 15.
    Stichwort: floor()

    cu,
    Michael

    1. bilde das Intervall {0,59} auf das Intervall {0,3} ab und multipliziere das Ergebnis mit 15.

      so wollte ich das eigentlich auch ausdrücken :)

      1. Hi,

        bilde das Intervall {0,59} auf das Intervall {0,3} ab und multipliziere das Ergebnis mit 15.
        so wollte ich das eigentlich auch ausdrücken :)

        danke für den tipp, aber nicht ganz was ich gesucht habe. hab aber übers php-handbuch dann eine lösung gefunden:

          
        $stunde = array("12");  
              $minute = array("59", "12", "26", "32", "00");  
              foreach($stunde as $value)  
              {  
                foreach($minute as $wert)  
                {  
                  echo "$value:$wert<br>";  
                }  
              }  
              echo "<hr>";  
              foreach($minute as $wert)  
              {  
                $neuminute[] = ceil($wert/15);  
              }  
              foreach($stunde as $value)  
              {  
                foreach($neuminute as $wert)  
                {  
                  $minute = $wert*15;  
                  if($minute==60)  
                  {  
                    $minute="00";  
                    $value++;  
                  }  
                  echo "$value:$minute<br>";  
                }  
              }  
        
        
        1. danke für den tipp, aber nicht ganz was ich gesucht habe. hab aber übers php-handbuch dann eine lösung gefunden:

          meiner Meinung nach gibt dein Codebeispiel nur Unsinn aus.

          Unsere Lösung passt doch zu deiner Fragestellung.

          Gruß,
          Benne

          1. Hi,

            Unsere Lösung passt doch zu deiner Fragestellung.

            nicht direkt, durch floor wird aus 12:12 => 12:00 ich will aber 12:15
            deshalb ceil() ich weis das der bsp. code unsauber ist. aber außer das
            ich ceil() statt floor() hab ist es das gleiche. vielen dank

            MfG

            1. Hallo

              ich weis das der bsp. code unsauber ist.

              nicht nur das, er ist falsch.
              aus 12:21 wird 13:30 ?

              Gruß,
              Benne

              1. Hi,

                aus 12:21 wird 13:30 ?

                Ja das lag daran:

                  
                foreach($stunde as $value)  
                {  
                  foreach($neuminute as $wert)  
                  {  
                    $minute = $wert*15;  
                    if($minute==60)  
                    {  
                      $minute="00";  
                      $value++;  
                    }  
                    echo "$value:$minute<br>";  
                  }  
                }  
                
                

                dadurch wird die stunde beim ersten wert über 45 überschriebn und eins hochgezählt. wenn man das ändert auf:

                  
                foreach($stunde as $value)  
                {  
                  foreach($neuminute as $wert)  
                  {  
                    $minute = $wert*15;  
                    $stunde = $value;  
                    if($minute==60)  
                    {  
                      $minute="00";  
                      $stunde++;  
                    }  
                    elseif($minute==0)  
                    {  
                      $minute="00";  
                    }  
                    echo "$stunde:$minute<br>";  
                  }  
                }  
                
                

                dann stimmts

                MfG

        2. Hallo,

          Hi,

          bilde das Intervall {0,59} auf das Intervall {0,3} ab und multipliziere das Ergebnis mit 15.
          so wollte ich das eigentlich auch ausdrücken :)

          danke für den tipp, aber nicht ganz was ich gesucht habe. hab aber übers php-handbuch dann eine lösung gefunden:

          dann solltest du zukünftig deine Fragen bitte besser formulieren.
          1. In deinem OP war _keine_ Rede von irgendwelchen Minutenüberträgen auf Stunden.
          2. Du hast prinzipiell nach viertelstündlichem _Abrunden_ gefragt.

          Daraus folgt, daß unsere Lösungsvorschläge vollkommen richtig sind/waren.
          Btw., mit solchen Methoden lässt sich selbstverständlich auch ein richtiges Runden verwirklichen, indem z.B.:
          7 Min -> 0 Min und
          8 Min -> 15 Min abgebildet werden.

          cu,
          Michael

          1. Hi,

            dann solltest du zukünftig deine Fragen bitte besser formulieren.

            1. In deinem OP war _keine_ Rede von irgendwelchen Minutenüberträgen auf Stunden.
            2. Du hast prinzipiell nach viertelstündlichem _Abrunden_ gefragt.

            Ansich hast du recht allerdings hab ich die "rundenfunktion" versucht
            anhand des bsp. https://forum.selfhtml.org/?t=109950&m=688257 mit dem If-Block zu zeigen.

            Wie gesagt vielen dank für eure Tips etc. ich hab ja nicht behauptet das
            sie falsch sind nur waren sie nicht ganz das was ich suchte. allerdings
            hat es mir einen denkanstoß gegeben. also im sinne von self. Vielen Dank

            MfG

            1. Hallo Daniel,

              Ansich hast du recht allerdings hab ich die "rundenfunktion" versucht
              anhand des bsp. https://forum.selfhtml.org/?t=109950&m=688257 mit dem If-Block zu zeigen.

              ich finde es ungeeignet, sich mit if-Blöcken auszudrücken.
              Oder redest du mit deiner Freundin auch in if-Blöcken?

              Gruß,
              Benne

              1. Hallo Benne,

                ich finde es ungeeignet, sich mit if-Blöcken auszudrücken.

                das ist ein streitbares Thema. Es gibt Coder, die im Interesse von _wartbarem_ Code solche if-Strukturen bevorzugen. ;)
                Ich neige zu solchen Einzeilern, aber wenn ein Anderer solche Code-Schnippsel vor die Augen bekommt, hat er imho schon mehr Aufwand diese zu verstehen.

                cu,
                Michael

              2. Hi,

                ich finde es ungeeignet, sich mit if-Blöcken auszudrücken.

                ich finde es extrem gut da einfach nachvollziehbar

                Oder redest du mit deiner Freundin auch in if-Blöcken?

                Natürlich hier ein bsp.:
                <code lang=meine>
                if($ich_geil = true && $meine_freundin_geil = true)
                {
                  gotobed($ich, $freundin);
                }
                elseif($ich_geil = true)
                {
                  gotobed($ich, $freundin);
                }
                elseif($meine_freundin_geil = true)
                {
                  gotoMc($ich, $auto);
                }
                else
                {
                  gotoTV($ich, $freundin);
                }
                </code>

                denken wir nicht alle in if()?!?

                MfG

                *SCNR*