omrekenen hoe?
heeft er iemand een handig truukje om bijv 132440 seconden op te delen in bijv zoveel dagen zoveel uren zoveel minuten ?
want ik kan wel gewoon dele door 86400(zoveel seconden zitten der in een dag) maar dan krijg ik t antwoord alleen in dagen. iemand een idee?
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
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
<?php
function secondsToArray($seconds, $showNames = true, $showEmptyItems = false)
{
$result = array();
$days = floor($seconds / (60 * 60 * 24));
if ($days > 0 || $showEmptyItems) {
if ($showNames) {
if ($days == 1) {
$result['days'] = $days . ' dag';
} else {
$result['days'] = $days . ' dagen';
}
} else {
$result['days'] = $days;
}
}
$seconds = $seconds - ($days * (60 * 60 * 24));
$hours = floor($seconds / (60 * 60));
if ($hours > 0 || $showEmptyItems) {
if ($showNames) {
if ($hours == 1) {
$result['hours'] = $hours . ' uur';
} else {
$result['hours'] = $hours . ' uren';
}
} else {
$result['hours'] = $hours;
}
}
$seconds = $seconds - ($hours * (60 * 60));
$minutes = floor($seconds / 60);
if ($minutes > 0 || $showEmptyItems) {
if ($showNames) {
if ($minutes == 1) {
$result['minutes'] = $minutes . ' minuut';
} else {
$result['minutes'] = $minutes . ' minuten';
}
} else {
$result['minutes'] = $minutes;
}
}
$seconds = $seconds - ($minutes * 60);
if ($seconds > 0 || $showEmptyItems) {
if ($showNames) {
if ($seconds == 1) {
$result['seconds'] = $seconds . ' seconde';
} else {
$result['seconds'] = $seconds . ' secondes';
}
} else {
$result['seconds'] = $seconds;
}
}
return $result;
}
?>
function secondsToArray($seconds, $showNames = true, $showEmptyItems = false)
{
$result = array();
$days = floor($seconds / (60 * 60 * 24));
if ($days > 0 || $showEmptyItems) {
if ($showNames) {
if ($days == 1) {
$result['days'] = $days . ' dag';
} else {
$result['days'] = $days . ' dagen';
}
} else {
$result['days'] = $days;
}
}
$seconds = $seconds - ($days * (60 * 60 * 24));
$hours = floor($seconds / (60 * 60));
if ($hours > 0 || $showEmptyItems) {
if ($showNames) {
if ($hours == 1) {
$result['hours'] = $hours . ' uur';
} else {
$result['hours'] = $hours . ' uren';
}
} else {
$result['hours'] = $hours;
}
}
$seconds = $seconds - ($hours * (60 * 60));
$minutes = floor($seconds / 60);
if ($minutes > 0 || $showEmptyItems) {
if ($showNames) {
if ($minutes == 1) {
$result['minutes'] = $minutes . ' minuut';
} else {
$result['minutes'] = $minutes . ' minuten';
}
} else {
$result['minutes'] = $minutes;
}
}
$seconds = $seconds - ($minutes * 60);
if ($seconds > 0 || $showEmptyItems) {
if ($showNames) {
if ($seconds == 1) {
$result['seconds'] = $seconds . ' seconde';
} else {
$result['seconds'] = $seconds . ' secondes';
}
} else {
$result['seconds'] = $seconds;
}
}
return $result;
}
?>
Voorbeeld
Gewijzigd op 01/01/1970 01:00:00 door - -
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
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
<?php
function sec2hms ($sec, $padHours = false)
{
// holds formatted string
$hms = "";
// there are 3600 seconds in an hour, so if we
// divide total seconds by 3600 and throw away
// the remainder, we've got the number of hours
$hours = intval(intval($sec) / 3600);
// add to $hms, with a leading 0 if asked for
$hms .= ($padHours)
? str_pad($hours, 2, "0", STR_PAD_LEFT). ':'
: $hours. ':';
// dividing the total seconds by 60 will give us
// the number of minutes, but we're interested in
// minutes past the hour: to get that, we need to
// divide by 60 again and keep the remainder
$minutes = intval(($sec / 60) % 60);
// then add to $hms (with a leading 0 if needed)
$hms .= str_pad($minutes, 2, "0", STR_PAD_LEFT). ':';
// seconds are simple - just divide the total
// seconds by 60 and keep the remainder
$seconds = intval($sec % 60);
// add to $hms, again with a leading 0 if needed
$hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT);
// done!
return $hms;
}
?>
function sec2hms ($sec, $padHours = false)
{
// holds formatted string
$hms = "";
// there are 3600 seconds in an hour, so if we
// divide total seconds by 3600 and throw away
// the remainder, we've got the number of hours
$hours = intval(intval($sec) / 3600);
// add to $hms, with a leading 0 if asked for
$hms .= ($padHours)
? str_pad($hours, 2, "0", STR_PAD_LEFT). ':'
: $hours. ':';
// dividing the total seconds by 60 will give us
// the number of minutes, but we're interested in
// minutes past the hour: to get that, we need to
// divide by 60 again and keep the remainder
$minutes = intval(($sec / 60) % 60);
// then add to $hms (with a leading 0 if needed)
$hms .= str_pad($minutes, 2, "0", STR_PAD_LEFT). ':';
// seconds are simple - just divide the total
// seconds by 60 and keep the remainder
$seconds = intval($sec % 60);
// add to $hms, again with a leading 0 if needed
$hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT);
// done!
return $hms;
}
?>
Hier kun je op voort borduren door er nog eens dagen erbij te doen.
Bron
hey kan je me ook uitleggen hoe die werkt?:O:O
Reint schreef op 05.11.2008 18:24:
@ Jonathan
hey kan je me ook uitleggen hoe die werkt?:O:O
hey kan je me ook uitleggen hoe die werkt?:O:O
Ik heb 'm voor jou gemaakt, dus je mag 'm gewoon gebruiken ;-)
Het idee is simpel: hij deelt steeds door het aantal secondes die er in een dag/uur/minuut zitten, afronden naar beneden, en het restant verder delen door een lagere waarde.
Na even googlen een vele male overzichtelijkere functie gevonden en die wat aangepast:
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
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
<?php
//orgineel: http://snipplr.com/view.php?codeview&id=2711
function duration($secs)
{
$vals = array(
array(
(int) ($secs / (60 * 60 * 24 * 365)),
'jaren',
'jaar'
),
array(
($secs / 86400 % 365),
'dagen',
'dag'
),
array(
($secs / 3600 % 24),
'uren',
'uur'
),
array(
($secs / 60 % 60),
'minuten',
'minuut'
),
array(
($secs % 60),
'seconden',
'seconde'
)
);
$ret = null;
foreach ($vals as $val)
{
if ($val[0] > 0)
{
$ret .= $val[0] .' '.(($val[0] == 1) ? $val[2] : $val[1]).', ';
}
}
return substr($ret,0,-2);
}
echo duration(time());
?>
//orgineel: http://snipplr.com/view.php?codeview&id=2711
function duration($secs)
{
$vals = array(
array(
(int) ($secs / (60 * 60 * 24 * 365)),
'jaren',
'jaar'
),
array(
($secs / 86400 % 365),
'dagen',
'dag'
),
array(
($secs / 3600 % 24),
'uren',
'uur'
),
array(
($secs / 60 % 60),
'minuten',
'minuut'
),
array(
($secs % 60),
'seconden',
'seconde'
)
);
$ret = null;
foreach ($vals as $val)
{
if ($val[0] > 0)
{
$ret .= $val[0] .' '.(($val[0] == 1) ? $val[2] : $val[1]).', ';
}
}
return substr($ret,0,-2);
}
echo duration(time());
?>
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
hartstikke bedankt, dit komt erg in de buurt.
alleen wat ik eigelijk zou willen hebben is dta ie het afrond.
dus als je bijv
14 dagen, 6 uren, 51 minuten hebt.
hij eerst begint weergeeft 14 dagen.
zijn de dagen voorbij dan gaat hij verder in uren.
zijn de uren op gaat hij door in minuten.
snappie? heb zelf wat met ifjes geklooit maar kom der niet uit...:O
anyways:
Code (php)
1
2
3
4
2
3
4
$string = duration(123213);
$find = ',';
$pos = strpos($string, $find);
echo substr($string, 0, $pos);
$find = ',';
$pos = strpos($string, $find);
echo substr($string, 0, $pos);
Wat het doet: Staat de functie duration op in een string (haal echo duration(time()); maar weg uit de functie btw.
Dan gaat die met strpos opzoek naar de eerste locatie van een ','.
dan maakt die een substr van 0(begin van string) tot (en niet met) de komma.
14 dagen, 6 uur, 10 seconden word dus 14 dagen.
3 jaar, 2 dagen, 2 uur, 2 seconden word dus 3 jaar
etc.etc.