Avatar billede brianfrisch Nybegynder
04. oktober 2001 - 12:12 Der er 7 kommentarer

Omregning af dato til år

Hej

Lad os sige at jeg har datoen 1981-10-04, og gerne vil omregne den til \"år siden den dato\".

Er der en funktion der gør det?

Altså:

$aarsiden = funktion(1981-10-04);
echo $aarsiden;

Og så skulle den gerne outputte tallet 20.

På forhånd tak
Avatar billede alvion Nybegynder
04. oktober 2001 - 12:23 #1
$d = mktime(0, 0, 0, 10, 4, 1981);

$dagsdato = time();

$aarsiden = ($d - $dagsdato) / 31536000;

Den er lidt ukorrekt ang. skudår.
Avatar billede cyberdude Nybegynder
04. oktober 2001 - 12:38 #2
<?
$aar = date (\"Y\", mktime (0,0,0,10,4,1981));
$dagsdato = date (\"Y\", time());
$aarsiden = $dagsdato - $aar;
echo \"Det er $aarsiden jeg blev født;
?>
Avatar billede cyberdude Nybegynder
04. oktober 2001 - 12:38 #3
ups glemte en \"

her er den rigtige!

<?
$aar = date (\"Y\", mktime (0,0,0,10,4,1981));
$dagsdato = date (\"Y\", time());
$aarsiden = $dagsdato - $aar;
echo \"Det er $aarsiden år jeg blev født\";
?>
Avatar billede brianfrisch Nybegynder
04. oktober 2001 - 13:12 #4
Jeg kan ikke få det til at virke.

Jeg gør følgende:

$bornformat = mysql_query(\"select DATE_FORMAT(born, \'0,0,0,%m,%d,%Y\') AS born FROM userlist WHERE id = \'$id\' and active=\'yes\'\");
$bornrow = mysql_fetch_array($bornformat);
$iage = $bornrow[\'born\'];
$aar = date (\"Y\", mktime ($iage));
$dagsdato = date (\"Y\", time());
$aarsiden = $dagsdato - $aar;
echo \"Det er $aarsiden år siden jeg blev født\";

Men den ouputter 0 :(

Hvad gør jeg forkert?
Avatar billede cyberdude Nybegynder
04. oktober 2001 - 14:31 #5
$bornformat = mysql_query(\"select DATE_FORMAT(born, \'0,0,0,%m,%d,%Y\') AS born FROM userlist WHERE id = \'$id\' and active=\'yes\'\");
$bornrow = mysql_fetch_array($bornformat);
$iage = $bornrow[\'born\'];
$aar = date (\"Y\", mktime ($iage));
$dagsdato = date (\"Y\", time());
$aarsiden = $dagsdato - $aar;
echo \"iage indeholder : $iage<br>\";
echo \"Det er $aarsiden år siden jeg blev født\";


Jeg har tilføjet lidt, hvad indeholder værdien $iage.... jeg tror nemlig den er tom derfor resultatet 0.... men kør lige scriptet med den tilføjelse og se hvad outputtet er i $iage....

og hvad er værdien i feltet born ?
hvordan indsætter du værdien i dette felt, er det et mysql timestamp, eller med en funktion $tid = time();
og så i din sql sætning ........., born, .......) values (......... ,\'$tid\', ........
??
Avatar billede brianfrisch Nybegynder
04. oktober 2001 - 15:28 #6
Så ouputter den:
\"iage indeholder : 0,0,0,10,10,1910

Det er 0 år siden jeg blev født\"

born indeholder 1910-10-10, og det er et DATE felt.

Jeg indsætter det ved at man skal udfylde sin fødselsdato i formattet dd-mm-åå og den indsætter det korrekt.
Avatar billede cyberdude Nybegynder
04. oktober 2001 - 15:42 #7
så prøv med denne her!

$bornformat = mysql_query(\"select DATE_FORMAT(born, \'%m,%d,%Y\') AS born FROM userlist WHERE id = \'$id\' and active=\'yes\'\");
$bornrow = mysql_fetch_array($bornformat);
$iage = $bornrow[\'born\'];
$aar = date (\"Y\", mktime ($iage));
$dagsdato = date (\"Y\", time());
$aarsiden = $dagsdato - $aar;
echo \"iage indeholder : $iage<br>\";
echo \"Det er $aarsiden år siden jeg blev født\";


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