Avatar billede baitianlong Nybegynder
11. oktober 2004 - 01:30 Der er 14 kommentarer og
1 løsning

datediff, hvordan ?

Hej.

Hvis jeg har een dato i denne varcharformat (yy-mm-dd) og ønsker at vide hvor mange dage siden at en anden dato (yy-mm-dd) var. Hvordan hulen gør jeg så det ??
Avatar billede 7th Praktikant
11. oktober 2004 - 02:02 #1
$fra_dato = "2004-10-09 00:00:00";
$til_dato = "2004-10-11 00:00:00";

echo "Antal dage imellem: ".floor((strtotime($til_dato) - strtotime($fra_dato)) / 86400);
Avatar billede baitianlong Nybegynder
11. oktober 2004 - 02:07 #2
kan du skrive den til mit format (yy-mm-dd) så er du smuk :)
Avatar billede 7th Praktikant
11. oktober 2004 - 02:08 #3
P.S. time:minut:sekund angivelsen er ikke nødvendig at have med.
Avatar billede 7th Praktikant
11. oktober 2004 - 02:13 #4
Den er netop beregnet til dit format :) Du laver bare et normalt database udtræk...

$fra_dato = "2004-10-09";

$query = mysql_query("SELECT * FROM ...");

while ($row = mysql_fetch_array($query)) {
      echo "Antal dage imellem: ".floor((strtotime($row['din_dato']) - strtotime($fra_dato)) / 86400);
}

Mere skal der ikke til :)
Avatar billede baitianlong Nybegynder
11. oktober 2004 - 02:16 #5
I min database står der:

date: 04-10-09 (altså i forgårs)

Når jeg skriver:

$result = mysql_query("SELECT * FROM hund WHERE name='$dogname' AND yourname='$yourname'") or die(mysql_error());
if($row = mysql_fetch_assoc($result)) {
    $age = floor((strtotime(date("yy-mm-dd")) - strtotime($row['date'])) / 86400);
    print $age;
}

Får jeg dette som resultat:

-12700

?!?!?? hva så der
Avatar billede baitianlong Nybegynder
11. oktober 2004 - 02:18 #6
Hvis du lige kan løse den her midt om natten er det smukt
Avatar billede baitianlong Nybegynder
11. oktober 2004 - 02:21 #7
04-10-09 kan jo være alt muligt:

den fjerde oktober 2009
den fjerde oktober 1909
den niende oktober 2004 //det er så meningen
den tiende april 2009

og så videre :)
Avatar billede 7th Praktikant
11. oktober 2004 - 02:22 #8
$result = mysql_query("SELECT * FROM hund WHERE name='$dogname' AND yourname='$yourname'") or die(mysql_error());
if($row = mysql_fetch_assoc($result)) {
    $age = floor((strtotime("now") - strtotime($row['date'])) / 86400);
    print $age;
}

så skulle den vist være der.
Avatar billede baitianlong Nybegynder
11. oktober 2004 - 02:25 #9
Den skriver godt nok 2 nu !!

Får den tiden fra serveren ? For jeg prøvede at stille mit ur på computeren et år tilbage, en uge frem osv, men det ændrede intet ?!
Avatar billede 7th Praktikant
11. oktober 2004 - 02:28 #10
Der må jeg være dig svar skyldig, men måske kan du læse dig frem til det på http://dk.php.net/manual/da/php/function.strtotime.php

I øvrigt skyldtes din fejl, at der ikke er noget som hedder date("yy-mm-dd"). Den korrekte angivelse er date("Y-m-d"), men det er lige fedt om du bruger strtotime("now") eller strtotime(date("Y-m-d")).
Avatar billede 7th Praktikant
11. oktober 2004 - 02:30 #11
Jeg prøvede lige at stille datoen på min computer et måned frem, og hos mig ændre antal dage sig :)
Avatar billede baitianlong Nybegynder
11. oktober 2004 - 02:33 #12
OK. Det virker fint - jeg har lige testet igen...

Da jeg ændrede i databasen var der ændringer. Jeg prøvede at sætte date tilbage et år, og resultatet ver smukt...

Aight... Den hedder date("y-m-d") = 04-10-11 ;)

Tak for hjælpen og keep smiling
Avatar billede 7th Praktikant
11. oktober 2004 - 02:35 #13
Tak for points :)

Den hedder date("Y-m-d") og ikke date("y-m-d") med lille y. Lille y står for 04, hvorimod stort Y står for 2004. En lille vigtig detalje :)
Avatar billede baitianlong Nybegynder
11. oktober 2004 - 02:38 #14
Det ved jeg godt. Men jeg regner ikke med at nogen bruger min side om 1000 år ;)
Avatar billede 7th Praktikant
11. oktober 2004 - 02:39 #15
Man ved aldrig ;)
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