Rekenen met datums
met strtotime() kun je eigenlijk alleen maar rekenen met datum erbij of datum eraf.
Als ik nu bijvoorbeeld de datum 27-6-2012 heb en ik wil weten hoeveeel HELE dagen dat geleden is, hoe doe ik dat?
Het gaat me erom dat ik kan zorgen dat leden van mijn loginsysteem elke dag 1 nieuw tegoedpunt krijgen. Als een lid meerdere keren per dag inlogt dan mag er dus niet opnieuw op dezelfde dag 1 tegoedpunt bij worden gerekend.
Kan iemand een klein stukje voorbeeld code laten zien?
Stel dat de variabele $laatste_login de datum van de laatste login bevat en dat de variabele $registratie de datum van de registratie van het lid bevat.
Alle datums zijn zo opgebouwd: 00-00-0000 00:00:00 (d-m-Y h:i:s)
Gewijzigd op 27/08/2012 20:30:42 door Jan terhuijzen
datetime class.
Voorbeeld:
Sinds PHP 5.3 is er de Voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Gewijzigd op 27/08/2012 20:39:06 door John Berg
Dus dat returns de tijd die tussen de eerste login gisteren zit en de eerste login vandaag?
Van de PHP site, maar dan procedurele stijl:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$datetime1 = date_create($laatste_login);
$datetime2 = date_create($registratie);
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days');
?>
$datetime1 = date_create($laatste_login);
$datetime2 = date_create($registratie);
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days');
?>
Gewijzigd op 27/08/2012 21:04:00 door John Berg
Oke bedankt dit is handig.
Hoe doe ik dat dan?
select DateDiff(Now(), LastLogin) from userTable where userId = Id
Gewijzigd op 27/08/2012 21:59:02 door John Berg