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...
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
24. marts 2003 - 23:42
#1
hvad er det præcis den skal gøre?
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
24. marts 2003 - 23:45
#3
I stedet for 01011980 har jeg normalt en variabel. Kan godt se at det er lidt forvirende skrevet
24. marts 2003 - 23:47
#4
Hvis jeg prøver at køre f.eks. 02021969 igennem, så kommer fejlen
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"; ?>
24. marts 2003 - 23:54
#6
Perfekt. Det var lige det der skulle til. Tak skal du have :)
24. marts 2003 - 23:55
#7
Det var så lidt.
Vi tilbyder markedets bedste kurser inden for webudvikling