Jeg ville for det første havet gemt $date1 og $date2 som timestamps (vha. time()) og så formaterer resultatet bagefter ...
Men med den metode du har valgt, synes jeg du bør lave en funktion der ordner det hvis det skal gøres flere gange.
Ellers så det du skal have dat i noget der kan splitte de to variabler op i 3 ... derefter skal år trækkes fra år, måned trækkes fra måned og dag trækkes fra dag...
Den funktion jeg lavede ville give dig forskellen i år-måneder-dage og ikke i antal dage .. hvis du vil have antal dage har jeg et andet løsningsforslag:
Du kan bruge mk_time() ... Den laver et timestamp ud fra din dato...
så brug mk_time() på dato 1 og 2 (2 forskellige funktioner) ... Du får nu to 10-cifrede tal (eller lign). Det er antal sekunder fra 1. juni 1970 eller lign ... (igen er jeg ikke sikker på historien) ... hvis du trække de to tal fra hianden får du antal sekunder imellem.
Antal sekunder / 60 = antal minutter . / 60 = antal timer . / 24 = antal dage
ved at bruge min funktion fra før kan jeg lave: function date_diff($date1,$date2) { list($year1, $month1, $day1) = split('-', $date1); list($year2, $month2, $day2) = split('-', $date2);
kan godt se hvad du mener .. for det første har jeg byttet om på date 1 og 2 ... for det andet vil dit eksempel (hvis man bytter om) vise hvordan det ikke virker... den mangler muligheden for at trække måneder fra hvis dagene der skal trækkes fra får det til at gå i minus...
Men min sidste metode burde være i orden ... tror faktisk der er en funktion der kan trække timestamps fra hianden ... men det her virker også ;)
>showsource, Det kan ikke altid svare sig at lade MySQL lave beregningen, hvis man har en belastet database. I nogle tilfælde er det klart smartere at lave beregningen i PHP, men det kommer naturligvis meget an på, hvor vidt serveren er presset i bund. Så i sidste ende er det et performence spørgsmål, om man vil lade MySQL bruge ressourcer på at udregne det, eller lade PHP gøre det.
Det er bare i orden ... det var mere for at få tråden lukket - for det er vel ved at være rimelig uddebateret :P
$diff = strtotime($date2)-strtotime($date1); $diff = $diff/86400; eller rode lidt med den her hvis du henter fra db: SELECT DATEDIFF(felt2, felt1) as dage FROM tabel
Men det lyder ikke som om du vil kunne mærke forskellen...
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.