Is er een functie die de tijd berekent uit een bepaald aantal cijfers?

Ik heb bijv dit:
85842

Dat zijn seconden...
Nu zoek ik een functie die daar uren, minuten en seconden van maakt...

Kan dit? Zo ja: Geef me dat scrippie :P!!!

<?php
$seconden="85842";
$minuten=$seconden/60;
$uren=$seconden/3600
echo "Seconden: $seconden<br>";
echo "Minuten: $minuten<br>";
echo "Uren: $uren<br>";
?>
Als je dit zoekt ??
Ja en nee...

Het script is wel goed enzo, daarniet van, maar ik wil dit:
Als dit de seconden zijn: 7263, dat ie zegt
Nog 2 uren, 1 minuut en 3 seconden...

Via jouw manier zou dat zijn:
Nog 2 uren OF 121 minuten OF 7263

Of zie ik dat verkeerd??
Laat maar...

Heeft iemand een oplossing :S?
ik denk zo:

<?
$time = date("H:i:s", mktime(0, 0, 7263, 0, 0, 0));
?>
<?php
$seconden = 85842;

if ($seconden >= 3600)
{
$uren = $seconden / 3600;
$uren = floor($uren);
$seconden = $seconden - ($uren * 3600);
}

if ($seconden >= 60)
{
$minuten = $seconden / 60;
$minuten = floor($minuten);
$seconden = $seconden - ($minuten * 60);
}

echo "Uren: $uren<br>";
echo "Minuten: $minuten<br>";
echo "seconden: $seconden<br>";

?>

En als je dagen er ook nog bij wilt moet je ff uitrekenen hoeveel sec er in een dag zitten. 24*3600 dus. en dan maak je weer zon zelfde if. Deze moet dan BOVEN de rest staan.

Ik heb em niet getest maar als het goed is werkt ie wel :)


-edit by websmile: ff wat verandert, die slashes hoorde daar helemaal niet
K denk dat die van bas het beste is :)
Dat kan makkelijker:

Je begint met het grootste aantal uren dat eruit kan:

<?
// voorbeeld: 8000 seconden
$uren = int($seconden / 3600);
// dit levert een getal van 2,2222.. op
// 2 uur dus.
$seconden = $seconden - ($uren*3600);
// nog 800 seconden over
$minuten = int($seconden / 60);
// 800/60 = 13,3333 = 13
$seconden = $seconden - ($minuten*60);
// 800 - 60*13 = 20.
?>

4 regels code :)

Hoewel je het waarschijnlijk ook wel met unixtime kan oplossen.. dan zeg je dat je de hoeveelheid tijd wil weten sinds de epoch; en geef je het getal als unixtime.
Dat is nog beter :). maar rond ie dan altijd af naar onder? want naar boven afronden mag niet he. anders klopt er niks meer van.

Ik had dus percies hetzelfde idee maar ik wist niet van dat int() af :D
post je hele script, dan is het zo opgelost.

Reageren