PDA

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";
}