Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Operacje na czasie
migacz
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 15.04.2003
Skąd: Tczew

Ostrzeżenie: (10%)
X----


Mam następujący problem. Pobieram z bazy pola w formacie time powiedzmy że czas1 i czas2. Musze wykonać na tym podstawowe dzialania tzn dodawanie i odejmowanie. jak pobrać lub sformatować te dane aby wynik tez był wyświtlany w formie czasu. (czas1=9:00 czas2=10:15 czas2-czas1=1:15)
Z góry dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mrbungle
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.11.2005

Ostrzeżenie: (10%)
X----


Oto moja funkcja którą sobie sam do tego napisałem jakiś czas temu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
  1. <?php
  2. function TimeOperation($time1, $op, $time2)
  3.    {
  4.        
  5.        // przygotowanie danych
  6.        $trans = array(60*60, 60, 1);
  7.        
  8.        $t1 = explode(':', $time1);
  9.        $t2 = explode(':', $time2);
  10.        
  11.        $time1 = 0;
  12.        
  13.        for($i=0; $i<3; $i++)
  14.        {
  15.            if(array_key_exists($i, $t1))
  16.                $time1 += $trans[$i]*$t1[$i];
  17.        }
  18.        
  19.        
  20.        $time2 = 0;
  21.        
  22.        for($i=0; $i<3; $i++)
  23.        {
  24.            if(array_key_exists($i, $t2))
  25.                $time2 += $trans[$i]*$t2[$i];
  26.        }
  27.        
  28.        
  29.        // jesli dodawanie
  30.        if($op == '+')
  31.            $time = $time1 + $time2;
  32.        elseif($op == '-')
  33.            $time = $time1 - $time2;
  34.        else
  35.            return(false);
  36.        
  37.        $out = array();
  38.        
  39.        for($i=0; $i<3; $i++)
  40.        {
  41.            $out[$i] = $time%60;
  42.            
  43.            if(strlen($out[$i]) < 2)
  44.                $out[$i] = '0'.$out[$i];
  45.            
  46.            $time = intval($time/60);
  47.        }
  48.        
  49.        return(implode(':', array_reverse($out)));
  50.        
  51.    }
  52. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 10:33