d
dutchcamel
09-08-2004 15:56
gewijzigd op 09-08-2004 16:07
<?
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
<?
list($year, $month, $day) = explode('-', $birthDate);
?>
vervangen voor
<?
list($day, $month, $year) = explode('-', $birthDate);
?>
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:
<?
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:
<?
function age($birthDate) {
list($year, $month, $day) = explode('-', $birthDate);
$ageOfPerson = date('Y') - $year;
if ($month > date('m')) {
$ageOfPerson--;
}
if ($month == date('m') && $day > date('d')) {
$ageOfPerson--;
}
$ageOfPerson .= " jaar";
return $ageOfPerson;
}
?>
Link gekopieerd
goed gedaaan dutch camle weer eentje geholpen:P
Link gekopieerd
Alleen klopt die laatste functie niet zie ik nu...nog even naar kijken :)
Link gekopieerd
Verbeterd...nu klopt ie wel.
Link gekopieerd
?
Onbekende gebruiker
09-08-2004 16:17
Bedankt dutchcamel maar ik heb nog 1 probleempje. Als ik het op een gewone lege pagina doe werkt het wel. Maar ik heb een code en daar wil ik het inwerken. Maar dan werkt het niet meer! Wat doe ik fout?
Dit is de code die ik heb:
----------------------------------------------
<? include ("header.php"); ?>
<?
$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>";
?>
<? include ("footer.php"); ?>
----------------------------------------------
Ik had de code tussen een echo geplaatst. Maar dat werkt niet. Iemand suggesties?
Link gekopieerd
De functie apart zetten, en als je een ding wilt toevoegen moet de age(); niet tussen "-en staan..
Zoiets dus:
<? include ("header.php"); ?>
<?
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>";
?>
<? include ("footer.php"); ?>
Verder is het beter om variabele buiten quotes te zetten, dus niet
<?
echo "Mijn naam is $naam en ik ben op $geboortedatum geboren";
?>
maar
<?
echo "Mijn naam is ".$naam." en ik ben op ".$geboortedatum." geboren";
?>
En met ' ipv " is nog iets sneller, omdat dan niet meer gecontroleerd wordt of er toch nog variabelen binnen de quotes staan.
<?
echo 'Mijn naam is '.$naam.' en ik ben op '.$geboortedatum.' geboren';
?>
Link gekopieerd
?
Onbekende gebruiker
09-08-2004 16:39
HET WERKT! Ontwijs bedankt dutchcamel!
Ben nu je suggesties aan het volgen (alle " omzetten naar ' enzovoort).
Nogmaals onwijs bedankt! :o)
Link gekopieerd
Graag gedaan :)
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.
Link gekopieerd