Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeiterfassung über Nacht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeiterfassung über Nacht

    Hallo PHP freunde,

    Vielleicht könnt ihr mir Bitte helfen.
    Versuche gerade die Script "Small Time" https://github.com/itmastergmbh/SmallTime umzuschreiben das es auch Zeiten berechnet die über Nacht gehen.

    z.B in der Monatsansicht in dieser https://github.com/itmastergmbh/Smal...lass_month.php

    Die Zeitstempel werden Dateien gespeichert.
    Habt ihr eine Idee wie ich das am besten machen könnte.

    Vielen Dank schon mal für eure mühe.

    Code:
    1567843200
    1567887300
    1568041200
    1567324800
    1567342800
    1567402200
    1567438200
    1567519200
    1567537200
    1567771200
    1567796400
    1568057400
    1568170800
    1568205000


  • #2
    Bitte beachten:

    https://www.php.de/articles/regeln-u...twareprodukten

    und

    https://www.php.de/articles/regeln-u...inungsumfragen

    MOD: Verchoben von PHP-Einsteiger
    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Also um das zu fixieren um was es mir geht dieser kleine ausschnitt

      PHP-Code:
          private function get_time($i){
              
      $_stempelzeit $this->_MonatsArray[$i][10];
              
      $_anzeige = array();
              
      $_h_pro_day    0;
              
      $_anz 1;
              
      $_debug    1;
              
      $_debug_berechnung 1;
              
      // Falls eine ungerade anzahl, nur die geraden berechnen
              // Debug bei Berechnungen-----------------------------------------
              
      if($_debug){
                  echo 
      "<hr>";
                  echo 
      "Zeit berechnen : ";
                  
      print_r ($this->_MonatsArray[$i][10]);
                  echo 
      "<br>"$_stempelzeit [0] ;
                  echo 
      "<br>"$_stempelzeit [1] ;
              }
              
      // -------------------------------------------------------------------------
              
      $_count count($_stempelzeit);
              for(
      $h=0$h<$_count$h=$h+2){
                  if(
      $_debug_berechnung){
                          echo 
      "<br>--------------------------------------------------------------------------------";
                          echo 
      "<br>Tag:  " $i;
                      }
                  
      $_anzeige[$h]    = date("H:i",$_stempelzeit[$h]);
                  
      //Anzeige bei 59 Min und 59 Sek runden
                  
      if(date("i",$_stempelzeit[$h])=='59' and date("s",$_stempelzeit[$h])=='59'){
                      
      $tmp date("H",$_stempelzeit[$h])+1;
                      
      $tmp .= ":00";
                      
      $_anzeige[$h]    = $tmp;
                      if(
      $_debug_berechnung) echo ".....Zahl runden<br>";
                  }
                  
      // falls eine Zeit fehlt ist die nächste zeit 0 und kann nicht berechnet werden
                  
      if(isset($_stempelzeit[$h+1]) and $_stempelzeit[$h+1]<>0){
                      if(
      $_debug) echo "<hr>";
                      
      $_anzeige[$h+1]    = date("H:i",$_stempelzeit[$h+1]);
                      
      //Anzeige bei 59 Min und 59 Sek runden
                      
      if(date("i",$_stempelzeit[$h+1])=='59' and date("s",$_stempelzeit[$h+1])=='59'){
                          
      $tmp date("H",$_stempelzeit[$h+1])+1;
                          
      $tmp .= ":00";
                          
      $_anzeige[$h+1]    = $tmp;
                          if(
      $_debug_berechnung ) echo ".....59 Sekunden<br>";
                      }
                      
      // Stunden die gearbeitet wurden (mal 100 für die Dezimalumrechnung)
                      
      $_start date("H",$_stempelzeit[$h]);
                      
      $_ende date("H",$_stempelzeit[$h+1]);
                      
      //------------------------------------------------------------------------------------------
                      // Korrektur 28.12.2016 - Zeitberechnung - kleine Fehlerkorrektur im hunderstel - Bereich
                      //------------------------------------------------------------------------------------------
                      
      $work_h date("H",$_stempelzeit[$h+1]) - date("H",$_stempelzeit[$h]);
                      
      // Resultat könnte kleiner als 0 sein, wird weiter unten korrigiert
                      
      $work_m date("i",$_stempelzeit[$h+1]) - date("i",$_stempelzeit[$h]);
                      
      // Resultat könnte kleiner als 0 sein, wird weiter unten korrigiert
                      
      $work_s date("s",$_stempelzeit[$h+1]) - date("s",$_stempelzeit[$h]);
                      
      // falls Berechung im Minus ist, eine Minute abziehen und 60 Sekunden hinzu zählen
                      
      if($work_s<0){
                          
      $work_m $work_m-1;
                          
      $work_s $work_s 60;
                      }
                      
      // falls Berechung im Minus ist, eine Stunde abziehen und 60 Minuten hinzu zählen
                      
      if($work_m<0){
                          
      $work_h $work_h-1;
                          
      $work_m $work_m +60;
                      }
                      if(
      $_debug_berechnung ){
                          echo 
      "<br>Arbeitszeit in Stunden, Minuten, Sekunden: " $work_h ":" $work_m ":" $work_s 
                      }
                      
      // Zeiten nun in Dezimal umrechnen
                      
      $work_s $work_s/60;
                      
      $work_m $work_m/60*100;
                      
      $work_m = ($work_m $work_s) / 100;
                      
      $work_h $work_h $work_m;
                      if(
      $_debug_berechnung ){
                          echo 
      "<br>Arbeitszeit in Dezimal grundet: " round($work_h,2) ; 
                      }
                      
      $_zeit  round($work_h,2) ; 

      Kommentar

      Lädt...
      X