Datum naar vaste cijfer
Hoe kan ik ervoor zorgen dat hij automatisch die datum omtovert tot een leeftijd? Dus inplaats van dat je op de website 26-09-1984 ziet zie je dan 19.
Hoe doe ik dat?
( Voorzichtig met wat je zegt, ik ben nog erg nieuw met php en begrijp nog niet alles! :o) )
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?
function age($birthDate) {
list($year, $month, $day) = explode('-', $birthDate);
$ageOfPerson = date('Y') - $year;
$notBorn = "Nog niet geboren!";
$bornToday = "Vandaag geboren!";
$birthDay = "Vandaag " . $ageOfPerson . " geworden!";
if (($year > date('Y')) || ($year == date('Y') && $month > date('m')) || ($year == date('Y') && $month == date('m') && $day > date('d'))) {
$ageOfPerson = $notBorn;
}
elseif ($year == date('Y') && $month == date('m') && $day == date('d')) {
$ageOfPerson = $bornToday;
}
elseif ($year < date('Y') && $month == date('m') && $day == date('d')) {
$ageOfPerson = $birthDay;
}
else {
if ($month > date('m')) {
$ageOfPerson--;
}
if ($month == date('m') && $day > date('d')) {
$ageOfPerson--;
}
$ageOfPerson .= " jaar";
}
return $ageOfPerson;
}
$geboorteDatum = '1984-12-01';
echo age($geboorteDatum);
?>
function age($birthDate) {
list($year, $month, $day) = explode('-', $birthDate);
$ageOfPerson = date('Y') - $year;
$notBorn = "Nog niet geboren!";
$bornToday = "Vandaag geboren!";
$birthDay = "Vandaag " . $ageOfPerson . " geworden!";
if (($year > date('Y')) || ($year == date('Y') && $month > date('m')) || ($year == date('Y') && $month == date('m') && $day > date('d'))) {
$ageOfPerson = $notBorn;
}
elseif ($year == date('Y') && $month == date('m') && $day == date('d')) {
$ageOfPerson = $bornToday;
}
elseif ($year < date('Y') && $month == date('m') && $day == date('d')) {
$ageOfPerson = $birthDay;
}
else {
if ($month > date('m')) {
$ageOfPerson--;
}
if ($month == date('m') && $day > date('d')) {
$ageOfPerson--;
}
$ageOfPerson .= " jaar";
}
return $ageOfPerson;
}
$geboorteDatum = '1984-12-01';
echo age($geboorteDatum);
?>
Moet de datum dus wel invoeren als YYYY-MM-DD, als je DD-MM-YYYY wil gebruiken moet je de regel
vervangen voor
Verder is het script een beetje overdreven omdat het ook laat zien dat een persoon nog niet geboren is als de geboortedatum in de toekomst is enzo...dus als je zeker weet dat de datums goed ingevoerd worden kun je het kleiner maken door alleen dit te gebruiken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
function age($birthDate) {
list($year, $month, $day) = explode('-', $birthDate);
$ageOfPerson = date('Y') - $year;
$birthDay = "Vandaag " . $ageOfPerson . " geworden!";
if ($year < date('Y') && $month == date('m') && $day == date('d')) {
$ageOfPerson = $birthDay;
}
else {
if ($month > date('m')) {
$ageOfPerson--;
}
if ($month == date('m') && $day > date('d')) {
$ageOfPerson--;
}
$ageOfPerson .= " jaar";
}
return $ageOfPerson;
}
?>
function age($birthDate) {
list($year, $month, $day) = explode('-', $birthDate);
$ageOfPerson = date('Y') - $year;
$birthDay = "Vandaag " . $ageOfPerson . " geworden!";
if ($year < date('Y') && $month == date('m') && $day == date('d')) {
$ageOfPerson = $birthDay;
}
else {
if ($month > date('m')) {
$ageOfPerson--;
}
if ($month == date('m') && $day > date('d')) {
$ageOfPerson--;
}
$ageOfPerson .= " jaar";
}
return $ageOfPerson;
}
?>
Of als je ook geen medeling wil dat de persoon die dag jarig is:
Code (php)
Gewijzigd op 09/08/2004 16:07:00 door dutchcamel
goed gedaaan dutch camle weer eentje geholpen:P
Alleen klopt die laatste functie niet zie ik nu...nog even naar kijken :)
Verbeterd...nu klopt ie wel.
Dit is de code die ik heb:
----------------------------------------------
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?
$database ="**********";
$server ="localhost";
$user ="**********";
$wachtwoord ="**********";
mysql_connect("$server","$user", "$wachtwoord");
mysql_select_db("$database");
$query = "SELECT * FROM leden ORDER BY user";
$info =mysql_query($query) or die ("Unable to read database!");
while ($gegeven = mysql_fetch_object($info)) {
echo "<table border=0 bgcolor=#757575 cellspacing=1 cellpadding=3 width=100%>";
echo "<tr><td><font face=verdana size=1><b>N-Gamerz | $gegeven->user";
echo ".eXp</b></font></td></tr>";
echo "<tr><td bgcolor=#8A8A8A valign=top><font face=verdana size=1><br><blockquote>";
echo "<img src=\"$gegeven->pic\" align=\"right\" valign=\"middle\" width=\"100\" height=\"130\">";
echo "<b>Real Name:</b> $gegeven->naam $gegeven->achternaam<br>";
echo "<b>Member Since:</b> $gegeven->lidsinds<br><br>";
echo "<b>Fav. Map:</b> $gegeven->favmap<br>";
echo "<b>Fav. Weapon:</b> $gegeven->favwapen<br><br>";
echo "<b>Location:</b> $gegeven->lokatie<br>";
echo "<b>Email:</b> $gegeven->email<br><br>";
echo "<b>Quote:</b> $gegeven->quote<br>";
echo "</blockquote></td></tr></table><br>";
}
echo "<br>";
?>
$database ="**********";
$server ="localhost";
$user ="**********";
$wachtwoord ="**********";
mysql_connect("$server","$user", "$wachtwoord");
mysql_select_db("$database");
$query = "SELECT * FROM leden ORDER BY user";
$info =mysql_query($query) or die ("Unable to read database!");
while ($gegeven = mysql_fetch_object($info)) {
echo "<table border=0 bgcolor=#757575 cellspacing=1 cellpadding=3 width=100%>";
echo "<tr><td><font face=verdana size=1><b>N-Gamerz | $gegeven->user";
echo ".eXp</b></font></td></tr>";
echo "<tr><td bgcolor=#8A8A8A valign=top><font face=verdana size=1><br><blockquote>";
echo "<img src=\"$gegeven->pic\" align=\"right\" valign=\"middle\" width=\"100\" height=\"130\">";
echo "<b>Real Name:</b> $gegeven->naam $gegeven->achternaam<br>";
echo "<b>Member Since:</b> $gegeven->lidsinds<br><br>";
echo "<b>Fav. Map:</b> $gegeven->favmap<br>";
echo "<b>Fav. Weapon:</b> $gegeven->favwapen<br><br>";
echo "<b>Location:</b> $gegeven->lokatie<br>";
echo "<b>Email:</b> $gegeven->email<br><br>";
echo "<b>Quote:</b> $gegeven->quote<br>";
echo "</blockquote></td></tr></table><br>";
}
echo "<br>";
?>
----------------------------------------------
Ik had de code tussen een echo geplaatst. Maar dat werkt niet. Iemand suggesties?
Zoiets dus:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?
function age($birthDate) {
// hier de functie dus...
}
$database ="**********";
$server ="localhost";
$user ="**********";
$wachtwoord ="**********";
mysql_connect("$server","$user", "$wachtwoord");
mysql_select_db("$database");
$query = "SELECT * FROM leden ORDER BY user";
$info =mysql_query($query) or die ("Unable to read database!");
while ($gegeven = mysql_fetch_object($info)) {
echo "<table border=0 bgcolor=#757575 cellspacing=1 cellpadding=3 width=100%>";
echo "<tr><td><font face=verdana size=1><b>N-Gamerz | $gegeven->user";
echo ".eXp</b></font></td></tr>";
echo "<tr><td bgcolor=#8A8A8A valign=top><font face=verdana size=1><br><blockquote>";
echo "<img src=\"$gegeven->pic\" align=\"right\" valign=\"middle\" width=\"100\" height=\"130\">";
echo "<b>Real Name:</b> $gegeven->naam $gegeven->achternaam<br>";
echo "<b>Member Since:</b> $gegeven->lidsinds<br><br>";
echo "<b>Fav. Map:</b> $gegeven->favmap<br>";
echo "<b>Fav. Weapon:</b> $gegeven->favwapen<br><br>";
echo "<b>Location:</b> $gegeven->lokatie<br>";
echo "<b>Email:</b> $gegeven->email<br><br>";
echo "<b>Leeftijdl:</b> ".age($gegeven->geboortedatum)."<br><br>";
echo "<b>Quote:</b> $gegeven->quote<br>";
echo "</blockquote></td></tr></table><br>";
}
echo "<br>";
?>
function age($birthDate) {
// hier de functie dus...
}
$database ="**********";
$server ="localhost";
$user ="**********";
$wachtwoord ="**********";
mysql_connect("$server","$user", "$wachtwoord");
mysql_select_db("$database");
$query = "SELECT * FROM leden ORDER BY user";
$info =mysql_query($query) or die ("Unable to read database!");
while ($gegeven = mysql_fetch_object($info)) {
echo "<table border=0 bgcolor=#757575 cellspacing=1 cellpadding=3 width=100%>";
echo "<tr><td><font face=verdana size=1><b>N-Gamerz | $gegeven->user";
echo ".eXp</b></font></td></tr>";
echo "<tr><td bgcolor=#8A8A8A valign=top><font face=verdana size=1><br><blockquote>";
echo "<img src=\"$gegeven->pic\" align=\"right\" valign=\"middle\" width=\"100\" height=\"130\">";
echo "<b>Real Name:</b> $gegeven->naam $gegeven->achternaam<br>";
echo "<b>Member Since:</b> $gegeven->lidsinds<br><br>";
echo "<b>Fav. Map:</b> $gegeven->favmap<br>";
echo "<b>Fav. Weapon:</b> $gegeven->favwapen<br><br>";
echo "<b>Location:</b> $gegeven->lokatie<br>";
echo "<b>Email:</b> $gegeven->email<br><br>";
echo "<b>Leeftijdl:</b> ".age($gegeven->geboortedatum)."<br><br>";
echo "<b>Quote:</b> $gegeven->quote<br>";
echo "</blockquote></td></tr></table><br>";
}
echo "<br>";
?>
Verder is het beter om variabele buiten quotes te zetten, dus niet
maar
En met ' ipv " is nog iets sneller, omdat dan niet meer gecontroleerd wordt of er toch nog variabelen binnen de quotes staan.
Ben nu je suggesties aan het volgen (alle " omzetten naar ' enzovoort).
Nogmaals onwijs bedankt! :o)
Moet wel opletten als je in een echo \n, \t of \r gebruikt moet het wel weer tussen "-en staan...verder gebruik ik altijd '. Het verschil zal amper te merken zijn maar het staat netter vind ik.