Avatar billede mikze Nybegynder
22. juni 2004 - 12:20 Der er 12 kommentarer og
1 løsning

Regn alder ud fra fødselsdags dato?

Hejsa

Som overskriften lyder så vil jeg gerne vide hvordan man regner ens alder ud via en fødselsdags dato.

Jeg har 3 felter når man opretter sig som bruger. ALtså man udfylder fødselsdags år, fødselsdags dag, og fødselsdags måned. Alt bliver gemt som F_AA, F_MM, F_DD. Altså F_AA er år, F_MM er måned, og F_DD er dag.

Og det bliver så gemt i mysql. Men den så skal vise ens profil hvordan regner den så ud hvor gammel han er?
Avatar billede cautoo Nybegynder
22. juni 2004 - 12:24 #1
$Y = date("Y");
$m = date("m");
$d = date("d");

$udregn = $Y-$fY;
if (($fm>$m) || ($fm==$m && $fd>$d)) {$udregn--;}
Avatar billede cautoo Nybegynder
22. juni 2004 - 12:50 #2
fm fd og fy er så dine f_mm f_dd og f_aa variabler
Avatar billede mikze Nybegynder
22. juni 2004 - 13:14 #3
<?
session_start();
include "db.php";

$query = mysql_query("SELECT * FROM brugere WHERE brugernavn='$_SESSION[brugernavn]'") or die(mysql_error());
$skriv = mysql_fetch_array($query);


$Y = date("Y");
$m = date("m");
$d = date("d");

$udregn = $Y-$skriv[F_AA];
if (($skriv[F_MM]>$m) || ($skriv[F_MM]==$m && $skriv[F_DD]>$d)) {

echo "$_SESSION[brugernavn]'s alder er: $udregn";
}

?>


Sådan for mig så?
Avatar billede mikze Nybegynder
22. juni 2004 - 13:16 #4
Forstår ingenting af hvad scriptet gør :S Ved ikke engang hvad || er :D
Avatar billede Syska Mester
22. juni 2004 - 13:32 #5
|| betyder "eller"
== betyder "lig/det samme som"
Avatar billede mikze Nybegynder
22. juni 2004 - 13:36 #6
== kender jeg...

if (($fm>$m) || ($fm==$m && $fd>$d))
{
echo "$udregn";
}

Over sætter vi lige:

hvis (den hentede måned fra mysql "Er større end" Måneden vi er i nu) eller ($den hentede måned fra mysql "Er den samme som" den måned vi er i nu "OG" den hentede dag fra mysql "ER STØRRE END" dagen som vi har nu))
{
Så skal den udskrive "året vi er i nu "MINUS" året hentet fra mysql";
}
Avatar billede mikze Nybegynder
22. juni 2004 - 13:36 #7
Ved jeg ikke :S MEn skal nok passe det virker :)
Avatar billede Syska Mester
22. juni 2004 - 13:50 #8
<?php
$alder = time() - mktime(0,0,0,8,21,1983);
print "Du er: ".$alder." antal sekunder gammel<br>";
$alder /= 31536000;
print "Det vil sige du er ".floor($alder)." år gammel";
?>

Følgende burde virke
Avatar billede Syska Mester
22. juni 2004 - 13:50 #9
meget let læseligt synes jeg da selv, kom lige på en måde at lave det på, og så var det da en god lille øvelse...:-P
Avatar billede mikze Nybegynder
22. juni 2004 - 13:57 #10
Forstår stadig ingen ting :S Forklar :D Hvor skal den hente fra MySQL :) ?
Avatar billede mikze Nybegynder
22. juni 2004 - 19:08 #11
Har siddet og lejet lidt og det virker :)
Avatar billede Syska Mester
22. juni 2004 - 20:17 #12
hehe, altid godt du kunne bruge en af vores.
Avatar billede cautoo Nybegynder
22. juni 2004 - 20:39 #13
Lidt forklaring? kan ikke helt finde ud af, om du fik det hele med...
Før skal vi finde max antal år personen har levet i:
$udregn = $Y-$skriv[F_AA];
ex. hvis du er født i 1984 står der = 2004-1984 = 20år
^^Dette er sandt, hvis personen har haft fødselsdag i år, dvs. hvis hn ikk har, skal 1 år tages fra... det skal altså lige tjekkes...

if (($skriv[F_MM]>$m) || ($skriv[F_MM]==$m && $skriv[F_DD]>$d)) {

Første del
Hvis månednummeret han er født i, er højere end nuværende måned (altså ikke har haft fødselsdag

|| (eller)
Anden den:
Hvis månederne nu er de samme, men DAGEN i måneden ikke har været der endnu

^^Hvis betingelserne der er sande... så har han ikke haft fødselsdag i år, og en skal tages fra udregn.

altså:  {$udregn--;}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester