[PHP5] Tijd verschil berekenen functie probleem
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)
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
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;
}
}
?>
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
Code (php)
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
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;
}
}
?>
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
Met SQL kan dat dus wel.