Avatar billede fatass Nybegynder
24. marts 2003 - 23:40 Der er 6 kommentarer og
1 løsning

Problem med date() ved år før 1970

Hej,

Jeg bruger pt denne kode:

$dato=01011980; //ddmmyyyy
$time_now = time();
$dag  = substr($dato, 0, 2);
$mdr  = substr($dato, 2, 2);
$aar  = substr($dato, 4, 4);
$birthday = mktime(0, 0, 0, $mdr, $dag, $aar);
$alder = date('y')-date('y', $birthday);

if (date('m')<date('m', $birthday) || (date('m')==date('m', $birthday) && date('d')<date('d', $birthday))) $alder--;
$alder = $alder + 100;

Alt virker fint. Men hvis jeg prøver med en dato inden 1970 kommer denne fejl:
Warning: unexpected error in date()

Jeg har på fornemmelsen, at det hænger sammen med at unixtiden startede i 1970, men hvordan jeg klare problemet ved jeg ikke...
Avatar billede schaefner Juniormester
24. marts 2003 - 23:42 #1
hvad er det præcis den skal gøre?
Avatar billede fatass Nybegynder
24. marts 2003 - 23:45 #2
Outputtet er alderen og fødselsdag baseret på fødselsdato (i ddmmyyyy)

dvs. jeg bruger $dag, $mdr og $alder. Det er kun den sidste der giver problemer efter 1970
Avatar billede fatass Nybegynder
24. marts 2003 - 23:45 #3
I stedet for 01011980 har jeg normalt en variabel. Kan godt se at det er lidt forvirende skrevet
Avatar billede fatass Nybegynder
24. marts 2003 - 23:47 #4
Hvis jeg prøver at køre f.eks. 02021969 igennem, så kommer fejlen
Avatar billede ahv Nybegynder
24. marts 2003 - 23:48 #5
Se om du kan få noget ud af det her (fundet her på eksperten)

<?php
function alder ($aar,$maaned,$dag){
    if($aar<1970){$rig=$aar;$aar=1970;$foer=1;}
    $tid=(time())-mktime(0,0,0,$maaned,$dag,$aar);
    $antalaar=intval($tid/31532400);
    if(isset($foer)){$antalaar+=1970-$rig;} return $antalaar;
   
    }
echo "du er ".alder (1969,01,29). " år gammel";
?>
Avatar billede fatass Nybegynder
24. marts 2003 - 23:54 #6
Perfekt. Det var lige det der skulle til.

Tak skal du have :)
Avatar billede ahv Nybegynder
24. marts 2003 - 23:55 #7
Det var så lidt.
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