Avatar billede -jesper- Nybegynder
21. januar 2004 - 13:37 Der er 10 kommentarer og
1 løsning

mktime på datoer FØR 1970

Hejsa..

Jeg sidder og roder lidt med mktime()-funktionen på datoer før 1970. På http://www.php.net/mktime kan man læse følgende:

"on systems where time_t is a 32bit signed integer, as most common today, the valid range for year is somewhere between 1901 and 2038"

Hvordan får man det til at virke?

/Jesper :)
Avatar billede erikjacobsen Ekspert
21. januar 2004 - 13:38 #1
Du kan ikke have negative timestamps på Windows, men på de Linux/unix
Avatar billede -jesper- Nybegynder
21. januar 2004 - 13:39 #2
Åh, så lige følgende på samme side:

"Windows: Negative timestamps are not supported under any known version of Windows. Therefore the range of valid years includes only 1970 through 2038."

Det er netop en Windows-server jeg benytter. Hmm, er der nogen der kan nogle work-arounds til det her? Eller måske har andre idéer?
Avatar billede -jesper- Nybegynder
21. januar 2004 - 13:40 #3
Hold da op, det var hurtigt! :) Ja, jeg så det lige.. Du skulle vel ikke have andre idéer?
Avatar billede erikjacobsen Ekspert
21. januar 2004 - 13:41 #4
Ja, brug Linux.
Avatar billede erikjacobsen Ekspert
21. januar 2004 - 13:44 #5
Og hvis det ikke lige tiltaler dig, så kig på den her:
http://pear.php.net/package/Date
Avatar billede limemedia Nybegynder
21. januar 2004 - 13:58 #6
hvis nu hverken et skift til linux eller at installere Pear på din server synes attraktivt, må du skrive. Måske man kan kode en funktion til dig, der afhjælper problemet. Skal selvfølgelig vide lidt mere om hvad du forventer at proppe i og hive ud fra funktionen ;)
Avatar billede -jesper- Nybegynder
21. januar 2004 - 14:46 #7
Mange tak for tilbuddet, det er pænt af dig. Det lykkedes mig dog at få lavet en lille kodebid der klarede ærterne.

Det jeg skulle bruge var en metode der kunne udregne en persons alder på en given dato, når deres fødselsdato er kendt. Jeg fik brygget følgende sammen. Den kan godt optimeres lidt, men her er første udkast ihvertfald:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
</head>
<body>
<table>
<form method="post" action="<?=$PHP_SELF?>">
<tr>
<td>Fødselsdato</td><td>------------------></td><td>Dato</td>
</tr>
<td>
D:<input type="text" name="day1" size="2"<?if(isset($day1))echo " value=\"".$day1."\"";?>>&nbsp;
M:<input type="text" name="month1" size="2"<?if(isset($month1))echo " value=\"".$month1."\"";?>>&nbsp;
Å:<input type="text" name="year1" size="4"<?if(isset($year1))echo " value=\"".$year1."\"";?>>
</td>
<td></td>
<td>
D:<input type="text" name="day2" size="2"<?if(isset($day2))echo " value=\"".$day2."\"";?>>&nbsp;
M:<input type="text" name="month2" size="2"<?if(isset($month2))echo " value=\"".$month2."\"";?>>&nbsp;
Å:<input type="text" name="year2" size="4"<?if(isset($year2))echo " value=\"".$year2."\"";?>>
</td>
</tr>
</table>
<input type="submit" value="Udregn">
<br>
<br>
<?
$temp = $year2 - $year1;

if($month2 > $month1){
    $res = $temp;
} elseif($month2 == $month1) {
    if($day2 > $day1){
        $res = $temp;
    } elseif($day2 == $day1) {
        $res = $temp;
    } elseif($day2 < $day1) {
      $res = $temp - 1;
    }
} elseif($month2 < $month1) {
    $res = $temp - 1;
}
echo $res." år";
?>
</body>
</html>
Avatar billede -jesper- Nybegynder
21. januar 2004 - 16:29 #8
Jeg vil bare lige sige tak for hjælpen til dem der blandede sig - Hvis I skriver et "svar" ind i løbet af idag, så fordeler jeg point'ene ligeligt blandt svarene :)
Avatar billede limemedia Nybegynder
21. januar 2004 - 16:35 #9
Jeg svarede ikke noget du brugte til din løsning, og jeg ved Erik nægter at modtage point... så de må vist gå i din egen lomme
Avatar billede erikjacobsen Ekspert
21. januar 2004 - 17:59 #10
Lars har ret. Jeg samler ikke på point.
Avatar billede -jesper- Nybegynder
21. januar 2004 - 22:21 #11
Helt i orden! Men I skal nu begge have tak for hjælpen - om ikke andet, så inspirerede det ihvertfald til en løsning :)
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