[PHP5] Tijd verschil berekenen functie probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kvdd

kvdd

24/04/2008 11:57:00
Quote Anchor link
Hallo allemaal,

Nu probeer ik een functie te maken die mij het verschil in tijd uitrekend (in PHP niet SQL).

Dit is mijn functie:
*knip*

Ik heb intussen een nieuwe geschreven, kan wat simpel overkomen :-) maar werkt fantastisch, misschien dat iemand anders er nog wat aan heeft.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
function bereken_uren($sUren_begin, $sUren_eind, $sUren_begin_o, $sUren_eind_o, $sUren_pauze_o) {
    // Explode de variablen
    $aUren_begin    = explode (':',$sUren_begin);
    $aUren_eind     = explode (':',$sUren_eind);
    $aUren_begin_o    = explode (':',$sUren_begin_o);
    $aUren_eind_o    = explode (':',$sUren_eind_o);
    $aUren_pauze_o     = explode (':',$sUren_pauze_o);
    
    // Bereken de verschillen
    $verschilUren     = ((($aUren_eind[0] - $aUren_begin[0]) + ($aUren_eind_o[0] - $aUren_begin_o[0])) - ($aUren_pauze_o[0]));
    $verschilMin     = ((($aUren_eind[1] - $aUren_begin[1]) + ($aUren_eind_o[1] - $aUren_begin_o[1]))- ($aUren_pauze_o[1]));
    
    // De minuten mogen niet minder zijn als 0
    if ($verschilMin < 0) {
        $verschilUren--;
        $verschilMin = 60 - $verschilMin;
    }

    // De minuten mogen niet meer zijn als 60
    if ($verschilMin > 59) {
        $verschilMin = $verschilMin - 60;
        $verschilMin = 60 - $verschilMin;
    }

    // Een extra nul voor het getal als de minuten én minder zijn als 10 én meer als -1
    if (($verschilMin < 10) && ($verschilMin > -1)){
        $verschilMin = '0'.$verschilMin;
    }

    
    // Wanneer het aantal uren minder is als 0, geen tijd retourneren
    if ($verschilUren < 0){
        return false;
        
    }
else {
        // Een extra nul voor het getal als de uren én minder zijn als 10 én meer als -1
        if (($verschilUren < 10) && ($verschilUren > -1)){
            $verschilUren = '0'.$verschilUren;
        }

    // return de tijd, formaat 00:00
    return $verschilUren.':'.$verschilMin;
    }
}

?>


Bedankt allemaal! ^^
Gewijzigd op 01/01/1970 01:00:00 door Kvdd
 
PHP hulp

PHP hulp

08/11/2024 11:29:34
 
Jelle

Jelle

06/11/2009 03:15:00
Quote Anchor link
Zo komt het voor mijn doeleinde beter uit, tevens rekent hij nu ALTIJD het tijdverschil tussen de 2 tijden uit. En er zit een melding in voor het geval dat er een invoer fout is ontstaan.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
function calctime($TimeStart, $TimeEnd)
{

    // Explode variables
    $_TimeStart = explode (':',$TimeStart);
    $_TimeEnd   = explode (':',$TimeEnd);
    
    //In case of a wrong format || 59+ minutes || 24+ hours
    if (strlen($_TimeStart[0]) != 2 || strlen($_TimeEnd[0]) != 2 || strlen($_TimeStart[1]) != 2 || strlen($_TimeEnd[1]) != 2 || $_TimeStart[1] > 59 || $_TimeEnd[1] > 59 || $_TimeStart[0] > 24 || $_TimeEnd[0] > 24)
    {

        echo '<script type="text/javascript">';
        if (strlen($_TimeStart[0]) != 2 || strlen($_TimeEnd[0]) != 2 || strlen($_TimeStart[1]) != 2 || strlen($_TimeEnd[1]) != 2)
        {

            echo 'alert("Please insert the correct format. ( xx : xx )");';
        }

        elseif ($_TimeStart[1] > 59 || $_TimeEnd[1] > 59)
        {

            echo 'alert("A maximum value of 59 minutes can be entered.");';
        }

        elseif ($_TimeStart[0] > 24 || $_TimeEnd[0] > 24)
        {

            echo 'alert("A maximum value of 24 hours can be entered.")';
                    
        }

        echo '</script>';
        return false;    
    }

    else
    {        
        // Set 00:xx to 24:xx
        if ($_TimeStart[0] == 00)
        {

            $_TimeStart[0] = 24;
        }

        if ($_TimeEnd[0] == 00)
        {

            $_TimeEnd[0] = 24;
        }

        
        // Calculate differences
        $Hours   = $_TimeEnd[0] - $_TimeStart[0];
        $Minutes = $_TimeEnd[1] - $_TimeStart[1];    
        
        // Get correct Time
        if ($Minutes < 0)
        {

            $Hours--;
            $Minutes = 60 - $Minutes;
        }
        
        if ($Hours < 0)
        {

            $Hours = 24 + $Hours;    
        }

        
        // Set format to xx:xx
        if (($Minutes < 10) && ($Minutes > -1))
        {

            $Minutes = '0'.$Minutes;
        }

        if (($Hours < 10) && ($Hours > -1))
        {

            $Hours = '0'.$Hours;
        }

        
        // return time difference
        return $Hours.':'.$Minutes;
    }
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Jelle
 
Eddy E

Eddy E

06/11/2009 08:01:00
Quote Anchor link
Maar dan weet ik alsnog het verschil in uren nog niet tussen 2009-11-01 12:34:56 en 2009-12-31 23:59:59....

Met SQL kan dat dus wel.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.