Avatar billede n-emy Nybegynder
25. oktober 2005 - 14:45 Der er 8 kommentarer og
1 løsning

Udregne alder ved hjælp af fødselsdato?

Hej,

Jeg har et brugersystem hvor medlemmer kan indtaste deres fødelsdato.

Fødselsdatoen er i tal, f.eks. 15 9 1987 personen ville her være 18.

Hvordan kan jeg få et script til at regne det ud?
Avatar billede udvikler Nybegynder
25. oktober 2005 - 14:48 #1
Avatar billede visualdeveloper Nybegynder
25. oktober 2005 - 14:50 #2
du kan bare vende datoen om:

idag: 20051025
føds: 19870915

og så trække tallene fra hindanden:

(20051025-19870915)/10000

= 18
Avatar billede visualdeveloper Nybegynder
25. oktober 2005 - 14:53 #3
jeg er ikke helt sikker med prøv dette:

<?php

function age($BirthDate, $do)
{

if ($do == "") { $do = "1"; } //Checks if do is set, default set is number of days

list($month1, $day1, $year1) = split('[-.]', $BirthDate); //Splits date apart

$year = date("Y"); //Gets Current Year
$month = date("m"); //Gets Current Month
$day = date("d"); //Gets Current Day

$date = mktime(0,0,0,$month,$day,$year); //Gets Unix timestamp for current date
$date1 = mktime(0,0,0,$month1,$day1,$year1); //Gets Unix timestamp for date set

$difference = $date-$date1; //Calcuates Difference
$days2 = floor($difference /60/60/24); //Calculates Days Old

//If you choice "2" which is status unstead of days you can modify it here!
if ($days2 <= "20") { $days1 = "2 Weeks"; }
if ($days2 <= "13") { $days1 = "1 Week"; }
if ($days2 <= "7") { $days1 = "New"; }
if ($days2 >= "21") { $days1 = "Old"; }
//End Status Modify

if ($do == "1") { echo $days1; } //Echo Status
if ($do == "2") { echo $days2; } //Echo Days
}
?>

Then just put this where ever you want the days or status to show
age('MM-DD-YYYY', 'S')

Replace MM with the month it was made or born
DD with the day
YYYY with the year

S is what format you want it to show, if you want the days of something such as how many days a post has been posted enter "2".
If you want status like "New, 1 week, 2 weeks, Old" then enter "1".

Hope you enjoy.

Gordon
FreePgs.com Tech

hentet fra http://dk.php.net/date
Avatar billede visualdeveloper Nybegynder
25. oktober 2005 - 14:53 #4
Avatar billede n-emy Nybegynder
25. oktober 2005 - 15:49 #5
Har prøvet:

  function birthday ($birthday){
    list($bruger[birthyear],$bruger[birthmon],$bruger[birthday]) = explode("-",$birthday);
    $year_diff  = date("Y") - $bruger[birthyear];
    $month_diff = date("m") - $bruger[birthmon];
    $day_diff  = date("d") - $bruger[birthday];
    if ($day_diff < 0 || $month_diff < 0)
      $year_diff--;
    return $year_diff;
  }

Synes bare ikke det virker?

Når jeg skriver print"birthday"; skriver den ikke noget.
Avatar billede mjl Nybegynder
25. oktober 2005 - 17:57 #6
Prøv dette...

<?php
echo "Din alder er : " . birthday ("1987-09-15");
  //calculate years of age (input string: YYYY-MM-DD)
  function birthday ($birthday){
    list($year,$month,$day) = explode("-",$birthday);
    $year_diff  = date("Y") - $year;
    $month_diff = date("m") - $month;
    $day_diff  = date("d") - $day;
    if ($day_diff < 0 || $month_diff < 0)
      $year_diff--;
    return $year_diff;
  }
?>
Avatar billede n-emy Nybegynder
26. oktober 2005 - 15:27 #7
thx:)
svar?
Avatar billede mjl Nybegynder
26. oktober 2005 - 17:57 #8
Mig???
Avatar billede n-emy Nybegynder
08. november 2005 - 22:48 #9
ja
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