Volledige versie bekijken : tijd tot tijd berekenen
side_walk
%Europe/Berlin %553 %2005, 14:17
hallo,
ik zit met het volgende probleem
het scriptje:
<?
$tijd = $nickname->tijd; //oorspronkelijke tijd
$tijd2 = $nickname->wachttijd; //oorspronkelijke tijd + 5min
$wachttijd = tijd2-tijd;
if(tijd >= tijd2){
print"tijd is voorbij";
} else {
print"je moet nog $wachttijd wachten voordat je weer kunt posten";
}
?>
hij zal de tijd moetten berekenen wat hij nog te gaan heeft totdat hij weer verder mag
maar hij berekend het niet uit
hij zegt gewoon
je moet nog 1 wachten
en even later dit
je moet nog 0 wachten
hoe krijg ik het nou voor elkaar dat hij zegt :
je moet nog $wachttijd wachten totdat je weer kunt posten
waarbij de wachttijd in minuten en seconden worden weer gegeven (5:00 min wachten daarna als ik op verversen klik dat hij dan zegt bv 4:49 min wachten)
kan iemand me hier bij helpen?
alvast bedankt
De Kale
%Europe/Berlin %606 %2005, 15:33
er zitten wat foutjes in ;)
variables in php worden voorgegaan door een $ teken.
nickname, dat eruit ziet als een object, zou dus $nickname moeten zijn.
verder moet je zorgen dat je nummers van nummers aftrekt bij gebruik van de '-' operator
side_walk
%Europe/Berlin %609 %2005, 15:38
oeps was de $ in deze versie vergeten in mijn test script staan ze er wel :)
heb ook even bovenstaande script gewijzigt ;)
maar ik krijg de berekening niet voor elkaar om de 2 tijden van elkaar af te trekken zodat ik de tijd over hou waar ik dan op moet wachten en inmiddels ook de tijd is om weer te geven
lord Greystoke
%Europe/Berlin %623 %2005, 15:58
Welke tijdsindeling gebruik je?
Om dit te doen moet je gebruik maken van de unix tijdsindeling:
Ik kan namelijk aan bovenstaand script niet zien hoe je je tijd opbouwd.
Het moet ongeveer zoiets zijn:
$nickname->tijd = time();
$nickname->wachttijd = $nickname->tijd + (60*5); // (60sec X 5 = 5min)
$tijd = $nickname->tijd; //oorspronkelijke tijd
$tijd2 = $nickname->wachttijd; //oorspronkelijke tijd + 5min
$verschil = tijd2-tijd;
$wachttijd = strftime("%M:%S",$verschil);
if(tijd >= tijd2){
print"tijd is voorbij";
} else {
print"je moet nog $wachttijd wachten voordat je weer kunt posten";
}
succes, ;)
side_walk
%Europe/Berlin %633 %2005, 16:11
het scriptje van jou haalt niks uit de db
maar toch even geprobeert nu geeft hij geen 0 weer
maar 00:00 is dus al iets verbetering ;)
nu heb ik dit gedeelte aangepast
$tijd = $data->tijd;
$tijd2 = $data->tijd2;
$verschil = $tijd2-$tijd;
$wachttijd = strftime("%M:%S",$verschil);
maar dan geeft hij ook 00:00 weer
nu moet hij alleen nog de tijd weergeven [V]
de tijd zet ik in de database als
tijd = NOW()
mysql_query("UPDATE `gebruikers` SET `tijd`=NOW() WHERE `login`='{$nickname-login}'");
dus hij zet in de tijd tabel de tijd als volg uu:mm:ss (16:08:20)
de tijd2 zet ik als volg in de database
mysql_query("UPDATE `gebruikers` SET `tijd2`=DATE_ADD( NOW(), INTERVAL 5 MINUTE) WHERE `login`='{$nickname->login}'");
dus hij zet in de tijd2 tabel de tijd als volg uu:mm:ss ((16:08:20)+5 min dus 16:13:20)
en dan haal ik zo de tijd weer binnen
$tijd = $nickname->tijd; //oorspronkelijke tijd
$tijd2 = $nickname->wachttijd; //oorspronkelijke tijd + 5min
lord Greystoke
%Europe/Berlin %641 %2005, 16:24
$tijd = '16:08:20';
$tijd2 = '16:13:20';
$verschil = strtotime($tijd2) - strtotime($tijd); // string omzetten naar unix tijd
echo "<br> verschil: " . strftime("%M:%S",$verschil) . " minuten";
side_walk
%Europe/Berlin %649 %2005, 16:35
hey harstikke bedankt voor je hulp
ik heb er nu dit van gemaakt en hij werkt
$tijd = $nickname->tijd;
$tijd2 = $nickname->vliegtijd;
$verschil = strtotime($tijd2) - strtotime($tijd);
$wachttijd = strftime("%M:%S",$verschil);
if($tijd > $tijd2){
print"je kunt weer posten";
} else {
print"je moet nog $wachttijd wachten voordat je weer kunt posten";
}
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.