Controleren hoelanng geleden geregistreerd is met een output
Wij zijn bezig met een website voor en door vrachtwagenchauffeurs in de Rotterdamse havens. Hierbij moet er uit veiligheidsoogpunt geregistreerd worden, maar willen ook een overzicht maken op de homepage met de laatste registraties, en wanneer dit gedaan is.
Ik heb hiervoor een stuk code op internet gevonden en ben ik al even mee bezig om aan te passen. Ergens maak ik een foutje, maar kan het zo snel niet vinden.
Ik heb nu dus ingetikt dat, indien het verschil tussen vandaag en de registerdatum minder dan 24 uur is, het meer dan 24 uur is maar minder dan 48 uur, of groter is dan 48 uur, een verschillende output moet krijgen. Echter, ik krijg enkel resultaat 'vandaag', onndanks dat er registraties langer dan een week geleden zijn.
De data wordt in de database opgeslagen in format 2017-07-15 14:50:00 (JAAR-MAAND-DAG UUR-MINUUT-SECONDE).
Kan iemand mij vertellen wat ik hier fout doe?
Alvast bedankt!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
while ($row = mysql_fetch_array($result))
{
$id = $row["ID"];
$name = $row["Name"];
$name = CreatePilotRosterURL("detail/$id", htmlentities($name));
$registerdate = $row["RegisterDate"];
$ago = strtotime(time() - strtotime($registerdate));
if ($ago > 172800) {
echo "<tr><td>" . $name . "</td><td style=\"text-align:right\">" . $ago . " " . $txt["dageng"] . "</td></tr>";
}
else if ($ago < 86400) {
echo "<tr><td>" . $name . "</td><td style=\"text-align:right\">Vandaag</td></tr>";
}
else if ($ago > 86399 && $ago < 172801 ) {
echo "<tr><td>" . $name . "</td><td style=\"text-align:right\">" . $ago . " " . $txt["dagg"] . "</td></tr>";
}
}
{
$id = $row["ID"];
$name = $row["Name"];
$name = CreatePilotRosterURL("detail/$id", htmlentities($name));
$registerdate = $row["RegisterDate"];
$ago = strtotime(time() - strtotime($registerdate));
if ($ago > 172800) {
echo "<tr><td>" . $name . "</td><td style=\"text-align:right\">" . $ago . " " . $txt["dageng"] . "</td></tr>";
}
else if ($ago < 86400) {
echo "<tr><td>" . $name . "</td><td style=\"text-align:right\">Vandaag</td></tr>";
}
else if ($ago > 86399 && $ago < 172801 ) {
echo "<tr><td>" . $name . "</td><td style=\"text-align:right\">" . $ago . " " . $txt["dagg"] . "</td></tr>";
}
}
Gewijzigd op 15/07/2017 14:56:37 door Durk Houtsma
$ago = time() - strtotime($registerdate);
Dat was inderdaad de fout! Met nog 2 kleine foutjes opgelost heb ik het inmiddels naar wens werkend. Bedankt!
Houd wel rekening mee dat de mysql_**() functies verouderdd zijn en dat je moet kijken naar mysqli of PDO. ;-)
Als je hosting nu naar PHP 7 overschakelt zal je script niet meer werken.
Gewijzigd op 15/07/2017 20:51:28 door - Ariën -