webForumDet fria alternativet

Räkna ut födelsedag > Grattis!

PHP

5 svar · 496 visningar · startad av Melea

Medlem sedan juli 20033 147 inlägg
Frågan#1

Hejhej wF!

Har en liten funktion som räknar ut hur gammal man är, skulle vilja utveckla den så den säger till den dagen när personen i fråga fyller år men får inte riktigt koll på det, så här ser 'grundkoden' ut...

<?
$birthday = $objRS[year]."-".$objRS[month]."-".$objRS[day];

list($Y,$M,$D)=split("-",date("Y-m-d", strtotime("now")));
    list($y,$m,$d)=split("-",date("Y-m-d", strtotime("$birthday")));
$age=(($M<$m)||(($M==$m)&&($D<=$d)))?($Y-$y-1):($Y-$y);

echo $age;
?>

Några direkta förslag?

Tack på förhand!

Mvh

Medlem sedan maj 2002647 inlägg
#2

Denna använder jag (hittad på wF ;) ) Och den funkar hur bra som helst.

<?PHP
$b_year = årtalet;
$b_month = månaden;
$b_day = dagen;

$time = getdate(time());
$n_year = $time['year'];
$n_timestamp = time();

//This year birthday:
$b_timestamp = mktime(0,0,0,$b_month,$b_day,$n_year);

//Calculate age:
$age = $n_year - $b_year;
$age--;

if($n_timestamp >= $b_timestamp) {
  $age++;
}
?>
Medlem sedan juli 20033 147 inlägg
#3

Jo den där koden ger i stort sett samma resultat som min.. kanske förklarade dåligt men jag vill att den ska hojta till när $b_day = date(now());

Den ska alltså skriva ut "Grattis" efter ens ålder om man fyller år på nuvarande datum.

Go'Jul :)

Mvh

Medlem sedan aug. 20002 975 inlägg
#4

Hur har du lagrat månad och dag har du med inledande nolla ?

Om du har det och årtalet med fyra siffror så borde detta funka:

$birthday = $objRS[year]."-".$objRS[month]."-".$objRS[day];

if $birthday == date("Y-m-d") {
   echo 'Grattis !';
}
Medlem sedan juli 20033 147 inlägg
#5

Nej, nu måste jag ju fylla år IDAG, alltså vara född idag, annars funkar inte den if-satsen.

Medlem sedan juli 20033 147 inlägg
#6

Fixade till den lite. Såhär ser koden ut i dagsläget:

<?
$b_year = $objRS[year];
$b_month = $objRS[month];
$b_day = $objRS[day];
$b_all = $objRS[month]."-".$objRS[day];

$time = getdate(time());
$n_year = $time['year'];
$n_timestamp = time();

//This year birthday:
$b_timestamp = mktime(0,0,0,$b_month,$b_day,$n_year);

//Calculate age:
$age = $n_year - $b_year;
$age--;

if($n_timestamp >= $b_timestamp) {
  $age++;
}

if ($b_all <> date("m-d")) {
echo $age;
}

if ($b_all == date("m-d")) {
   echo " ".$objRS['username']." fyller ".$age." år idag! <b>Grattis!!</b>";
}
?>

Tack o Go'Jul! Älskar wF ;)

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)