Datum naar vaste cijfer

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

09/08/2004 15:49:00
Quote Anchor link
Ik heb een database met allemaal leden erin enzo... nu heb ik in die database ook een veld met geboortedatum (bijv. 26-09-1984)

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) )
 
PHP hulp

PHP hulp

13/01/2025 10:27:22
 
Dutchcamel

dutchcamel

09/08/2004 15:56:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
    list($year, $month, $day) = explode('-', $birthDate);
?>


vervangen voor

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
    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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
}

?>


Of als je ook geen medeling wil dat de persoon die dag jarig is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
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;
}

?>
Gewijzigd op 09/08/2004 16:07:00 door dutchcamel
 
Paul v.Dun

Paul v.Dun

09/08/2004 16:02:00
Quote Anchor link
goed gedaaan dutch camle weer eentje geholpen:P
 
Dutchcamel

dutchcamel

09/08/2004 16:03:00
Quote Anchor link
Alleen klopt die laatste functie niet zie ik nu...nog even naar kijken :)
 
Dutchcamel

dutchcamel

09/08/2004 16:08:00
Quote Anchor link
Verbeterd...nu klopt ie wel.
 

09/08/2004 16:17:00
Quote Anchor link
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:

----------------------------------------------

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? include ("header.php"); ?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?

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

?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? include ("footer.php"); ?>


----------------------------------------------

Ik had de code tussen een echo geplaatst. Maar dat werkt niet. Iemand suggesties?
 
Dutchcamel

dutchcamel

09/08/2004 16:28:00
Quote Anchor link
De functie apart zetten, en als je een ding wilt toevoegen moet de age(); niet tussen "-en staan..
Zoiets dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? include ("header.php"); ?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
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>";

?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? include ("footer.php"); ?>


Verder is het beter om variabele buiten quotes te zetten, dus niet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo "Mijn naam is $naam en ik ben op $geboortedatum geboren";
?>


maar

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo 'Mijn naam is '.$naam.' en ik ben op '.$geboortedatum.' geboren';
?>
 

09/08/2004 16:39:00
Quote Anchor link
HET WERKT! Ontwijs bedankt dutchcamel!
Ben nu je suggesties aan het volgen (alle " omzetten naar ' enzovoort).

Nogmaals onwijs bedankt! :o)
 
Dutchcamel

dutchcamel

09/08/2004 16:49:00
Quote Anchor link
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.